DDL in Trigger ? [message #203653] |
Wed, 15 November 2006 23:47 |
mudalimuthu
Messages: 64 Registered: May 2005 Location: Bangalore
|
Member |
|
|
Create or replace trigger triggername
before insert or update on connectinfo
for each row
begin
if inserting then
execute immediate 'alter...'
end if;
end
when i create the above trigger it gives the following error;
'trigger created with compilation error';
Can anybody give the correct syntax ?
regards muthu
|
|
|
Re: DDL in Trigger ? [message #203659 is a reply to message #203653] |
Thu, 16 November 2006 00:08 |
rleishman
Messages: 3728 Registered: October 2005 Location: Melbourne, Australia
|
Senior Member |
|
|
Type
after you create it in SQL*Plus. It's probably because you are missing a semi-colon after the EXECUTE IMMEDIATE statement and the final END.
Ross Leishman
|
|
|
Re: DDL in Trigger ? [message #203685 is a reply to message #203653] |
Thu, 16 November 2006 00:53 |
michael_bialik
Messages: 621 Registered: July 2006
|
Senior Member |
|
|
You can NOT issue DDL intrigger because ANY DDL implies COMMIT.
Try calling a stored proc with PRAGMA AUTONOMOUS TRANSACTION and
performing DDL inside the proc.
However, if trigger fails - you will NOT be able to rollback the DDL.
HTH.
|
|
|
|
|
|
Re: DDL in Trigger ? [message #203754 is a reply to message #203723] |
Thu, 16 November 2006 03:51 |
mudalimuthu
Messages: 64 Registered: May 2005 Location: Bangalore
|
Member |
|
|
my actual trigger is as follows
connect system/manager@oracle9i
GRANT ADMINISTER DATABASE TRIGGER TO GKMNEW
create or replace trigger trig1
after insert or update on connectinfo
declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
execute immediate 'alter system set fixed_date=none';
end;
after creation of trigger
when i update the connectinfo table
the following error is comming
ORA-01031:insufficient privileges
ORA-06512: at "gkmnew.trig1", line4
ORA-04088: ERROR DURING EXECUTION
GENERAL SQL ERROR. TRIGGER "gkmnew.trig1"
WHAT WILL BE THE PROBLEM ?
|
|
|
|
|
Re: DDL in Trigger ? [message #203775 is a reply to message #203773] |
Thu, 16 November 2006 05:05 |
mudalimuthu
Messages: 64 Registered: May 2005 Location: Bangalore
|
Member |
|
|
but the following trig2 is giving error
create or replace trigger trig2
before insert or update on connectinfo
declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
execute immediate 'alter system set fixed_date = '1980_01_01_00_00-00'';
end;
trigger created with compilation error .
[Updated on: Thu, 16 November 2006 05:06] Report message to a moderator
|
|
|
|
Re: DDL in Trigger ? [message #204101 is a reply to message #203653] |
Fri, 17 November 2006 16:28 |
Bill B
Messages: 1971 Registered: December 2004
|
Senior Member |
|
|
In otherwords
create or replace trigger trig2
before insert or update on connectinfo
declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
execute immediate 'alter system set fixed_date = ''1980_01_01_00_00-00'' ';
end;
|
|
|
|
Re: DDL in Trigger ? [message #204373 is a reply to message #204335] |
Mon, 20 November 2006 06:49 |
Bill B
Messages: 1971 Registered: December 2004
|
Senior Member |
|
|
kiran9i wrote on Mon, 20 November 2006 03:39 | hi
i think u can not write ddl in trigger.
check it out in manual
|
Sure you can, it just has to be setup as an autonomous transaction. wither you should is a totally different issue.
|
|
|
|
|