Re: ora-04091, updating same table in trigger

From: Bill Ferguson <wbfergus_at_gmail.com>
Date: Wed, 22 Apr 2009 12:53:41 -0600
Message-ID: <4025610e0904221153g6d19a4aeh97c02ca5df1da8b4_at_mail.gmail.com>



Igor,

Upon further reflection, you are correct.

I should have stated a slight difference. I have INSTEAD_OF triggers on views, which need to commit data in several tables (and in a few cases, against other views - UGLY), which in turn have triggers on them as well. The regular 'table' triggers don't have the commits, but the view triggers do.

On Wed, Apr 22, 2009 at 8:17 AM, Igor Neyman <ineyman_at_perceptron.com> wrote:
>
> Bill,
> I'm pretty sure, you are mistaken.
> You can not " 'COMMIT' statements inside the trigger".
> And "PRAGMA AUTONOMOUS_TRANSACTION;" you used not "In the trigger itself", but in the stored procedure you called from the trigger.
>
> Igor Neyman
>
> -----Original Message-----
> From: oracle-l-bounce_at_freelists.org on behalf of Bill Ferguson
> Sent: Wed 4/22/2009 8:38 AM
> To: Harvinder_Singh_at_picis.com; Oracle-L Freelists
> Subject: Re: ora-04091, updating same table in trigger
>
> I've had to deal with that issue as well.
>
> In my database, my workaround was taking some of the logic out of the
> trigger and creating procedures that get called from the trigger.
>
> In the trigger itself, I have to use the "PRAGMA
> AUTONOMOUS_TRANSACTION;" declaration, and use several 'COMMIT'
> statements inside the trigger, like before the calls to the
> procedures, at the end of the trigger, etc. It took a bit of
> experimentation, but I finally got it all figured out and working
> correctly.
>
> This is on 11.1.0.6 on Windows Server 2003, so I'm not sure if this
> will work the same  on other/previous versions or O/S's.
>
> Hope this helps.
>
> --
> -- Bill Ferguson
> --
> http://www.freelists.org/webpage/oracle-l
>
>
>
>
>

-- 
-- Bill Ferguson
--
http://www.freelists.org/webpage/oracle-l
Received on Wed Apr 22 2009 - 13:53:41 CDT

Original text of this message