View Single Post

   
  #1 (permalink)  
Old 04-10-2008, 09:07 AM
Sofer, Yuval
 
Posts: n/a
Default cannot get error message after dblink_exec execution

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 With Quote