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. According to the documentation on execute_for_fetch (http://search.cpan.org/~timb/DBI-1.48/DBI.pm#execute_for_fetch) however an execute is done for every fetched record and @tuple_status should contain the error message associated with each failed execute.
>>> Richard Huxton <[EMAIL PROTECTED]> 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.