ORA-04092: cannot COMMIT in a trigger [message #152373] |
Thu, 22 December 2005 14:09  |
jmejia2275
Messages: 3 Registered: December 2005
|
Junior Member |
|
|
Hi,
I have the following:
In a triger (after insert) I call a stored procedure, in this stored procedure, I tried the DML to create an external table, using the statement "execute immediate".
When I insert in the table who owns the trigger, oracle gives me the error : ORA-04092: cannot COMMIT in a trigger...
How can I do this ?
Thanks in advance,
Jose Enrique
|
|
|
|
Re: ORA-04092: cannot COMMIT in a trigger [message #152581 is a reply to message #152376] |
Sat, 24 December 2005 04:36   |
 |
Maaher
Messages: 7065 Registered: December 2001
|
Senior Member |
|
|
Why on earth are you creating a table in a trigger?
Use a global temporary table, a PL/SQL table, a REF cursor but don't create and drop tables on the fly. You'll compromise your data model. I know that it is common practice in the MS SQL Server world but in Oracle it's a big "nono".
You could start by explaining what you want to do and why you need to create a new table for each insert in your table.
MHE
[Updated on: Sat, 24 December 2005 04:36] Report message to a moderator
|
|
|
Re: ORA-04092: cannot COMMIT in a trigger [message #152610 is a reply to message #152373] |
Sun, 25 December 2005 05:03   |
alkeshyeole
Messages: 2 Registered: November 2005 Location: Pune
|
Junior Member |
|
|
Hi
To have a DML statement in your Trigger u should use the driective to compilers i.e. pragmas. The pragma used in this case is
pragma autonomus_transaction
After adding this in the trigger declerative part u can use any DML in your trigger.
|
|
|
|
|
|