Hi, 

 

I am using DBLink contrib module. 

I cannot catch the dblink_exec error messages. 

On the other hand, the pgadmin gui shows the error message under
"DETAIL" section: 

 

The test function : 

 

CREATE OR REPLACE FUNCTION test_func1()


RETURNS integer AS

$$

DECLARE

stmt text;

conn text;

err text ;

last_message text default 'aaa';

BEGIN

                       

          conn := 'dbname=postgres user=postgres password=manager';

          stmt := 'drop table not_existing_table';

          

          err := dblink_exec(conn, stmt,false);          

          last_message := dblink_error_message('dbname=postgres
user=postgres password=manager') ; 

          raise notice ' err is %',err;  

          raise notice ' last_message is %',last_message;  

          return 0;

 

END;

$$

LANGUAGE 'plpgsql' VOLATILE;

 

When I execute select test_func1(); I get the error message from the gui
(table "not_existing table" does not exist): 

 

NOTICE:  sql error

DETAIL:  ERROR:  table "not_existing_table" does not exist

 

CONTEXT:  PL/pgSQL function "test_func1" line 11 at assignment

NOTICE:   err is ERROR

NOTICE:   last_message is 

 

Total query runtime: 100 ms.

1 rows retrieved.

 

My questions : 

How can catch this error into the stored procedure parameter? 

Am I not using dblink_error_message correctly? 

I don't mind retrieving the error message as the gui does, but how can I
do it? 

 

Thanks 

Yuval

DBA team

BMC Software

 

 

 

Reply via email to