How to assign variable value from a table in Postgresql Procedure

Viewed 21

I have written this procedure in PostgreSQL.

I have below variable values stored in a separate lookup table(schema1.instance_lookup). How can I assign these values into a loop in the procedure instead of hardcoding them in the procedure itself? -

  • instance-Endpoint
  • Pwd
  • username
  • dbinstanceidentifier
  • Appname

Procedure -

CREATE OR REPLACE PROCEDURE schema1.pg_parameters(
    )
LANGUAGE 'plpgsql'
AS $BODY$                   
    DECLARE
        x text;
            BEGIN
INSERT INTO schema1.PG_PARAMETERS Select * FROM DBLINK('host=instance-Endpoint dbname=databasename password=Pwd user=username', 'SELECT ''dbinstanceidentifier'' as instance, name,setting,''Appname''  as application, current_timestamp as timestamp,pending_restart FROM pg_settings') AS T1(INSTANCE text, NAME text, SETTING text,application text,timestamp timestamp,pending_restart boolean); 
INSERT INTO schema1.PG_PARAMETERS Select * FROM DBLINK('host=instance-Endpoint dbname=databasename password=Pwd user=username', 'SELECT ''dbinstanceidentifier'' as instance,name,setting,''Appname''  as application, current_timestamp as timestamp,pending_restart FROM pg_settings') AS T1(INSTANCE text, NAME text, SETTING text,application text,timestamp timestamp,pending_restart boolean);
INSERT INTO schema1.PG_PARAMETERS Select * FROM DBLINK('host=instance-Endpoint dbname=databasename password=Pwd user=market', 'SELECT ''dbinstanceidentifier'' as instance, name,setting, ''Appname''  as application, current_timestamp as timestamp,pending_restart FROM pg_settings') AS T1(INSTANCE text, NAME text, SETTING text,application text,timestamp timestamp,pending_restart boolean);
INSERT INTO schema1.PG_PARAMETERS Select * FROM DBLINK('host=instance-Endpoint dbname=databasename password=Pwd user=username', 'SELECT ''dbinstanceidentifier'' as instance, name,setting,''Appname''  as application, current_timestamp as timestamp,pending_restart FROM pg_settings') AS T1(INSTANCE text, NAME text, SETTING text,application text,timestamp timestamp,pending_restart boolean);
INSERT INTO schema1.PG_PARAMETERS Select * FROM DBLINK('host=instance-Endpoint dbname=databasename password=Pwd user=username', 'SELECT ''dbinstanceidentifier'' as instance,name,setting,''Appname'' as application, current_timestamp as timestamp,pending_restart  FROM pg_settings') AS T1(INSTANCE text, NAME text, SETTING text,application text,timestamp timestamp,pending_restart boolean);
end;
$BODY$;
0 Answers
Related