Using DBI->err was a leftover from earlier testing. $dbh_pg->err is of course better. But it doesn't solve the problem.
I'm not sure what you mean with your second remark.
The call to my function ( SELECT dbi_insert3(); ) is one transaction I suppose.
an execute is done for every fetched record and @tuple_status should contain the error message associated with each failed execute.
>>> Richard Huxton <dev@archonet.com> 2007-06-06 12:19 >>>
I don't think this is the cause, but you're using DBI->err|errstr - do
you not want $dbh_pg->err|errstr? Otherwise, you can't identify
different errors on the oracle vs pg connections.
Second - it's not just that your function does the inserts in the
context of a single transaction, is it? That would mean you're just
seeing the original error repeated.