ADD COLUMN dans un trigger
Bonjour,
J'ai deux tables
Une table TEST_DESC qui decrit des colonnes(col_name, col_type et col_size).
Une table TEST.
En fait la table TEST_DESC contient la description des colonnes de la table TEST.
J'aimerai que quand je fais un Insert, update ou un Delete dans ma table TEST_DESC, les effet soient repercutés sur TEST.
J'ai donc fait un trigger
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
CREATE OR REPLACE TRIGGER TRG_TEST_DESC
AFTER INSERT OR UPDATE OR DELETE
ON TEST_DESC
FOR EACH ROW
DECLARE
vMsg VARCHAR2(30) := 'Row Level Trigger Fired';
BEGIN
IF INSERTING THEN
dbms_output.put_line(vMsg || ' On Insert ' || :new.col_name);
execute immediate( ' ALTER TABLE TEST ADD '||:new.col_name||' '||:new.col_type||'('||:new.col_size||') ' );
-- dbms_output.put_line( 'ALTER TABLE TEST ADD '||:new.col_name||' '||:new.col_type||'('||:new.col_size||')' );
ELSIF UPDATING THEN
dbms_output.put_line(vMsg || ' On Update');
ELSIF DELETING THEN
dbms_output.put_line(vMsg || ' On Delete');
END IF;
END TRG_TEST_DESC;
/ |
Quand je fais ça ca compile, mais j'ai une erreur oracle "04092 : cannot commit in a trigger"
Quelqu'un à une piste pour contourner ça ?
Cdt
Emilien