Re: Oracle error log table equivalent in postgresql - Mailing list pgsql-admin

From 066ce286@free.fr
Subject Re: Oracle error log table equivalent in postgresql
Date
Msg-id 59272590.782882796.1628254257380.JavaMail.root@zimbra82-e14.priv.proxad.net
Whole thread Raw
In response to Re: Oracle error log table equivalent in postgresql  (Mukesh Rajpurohit <vivasvan1902@gmail.com>)
Responses Re: Oracle error log table equivalent in postgresql  (Mukesh Rajpurohit <vivasvan1902@gmail.com>)
List pgsql-admin
> Thanks, but it solve just part of the problem. In oracle insert
> statement executes and rejected rows are inserted in error log table
> in same transaction. But, its similar feature or workaround seems
> hard in postgresql.

It's not hard.

You may either intercept the exception( EXCEPTION WHEN OTHER ...) so that the transaction will not be rollbacked, so
youcan easily insert into another table what you want.
 


But, if you want to rollback the transaction with a RAISE EXCEPTION, you just have to insert in your log table using
anothertransaction, for example with a loopback dblink.
 

Something like :

select setting INTO l_port FROM pg_settings WHERE name = 'port';
PERFORM * FROM dblink(
        FORMAT('dbname=%s user=%s port=%s',current_database(), current_user, l_port),
        FORMAT('INSERT INTO TRACE_ERROR(ernno,errmsg,errcontext) VALUES (%L,%L,%L);',l_errno,l_errmsg,l_errctx)
        ) AS p (ret text); 

Otherwise, when you rollback, the INSERT into the error log table will be also rollbacked.



pgsql-admin by date:

Previous
From: Vijaykumar Jain
Date:
Subject: Re: Oracle error log table equivalent in postgresql
Next
From: Mukesh Rajpurohit
Date:
Subject: Re: Oracle error log table equivalent in postgresql