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
Quand je fais ça ca compile, mais j'ai une erreur oracle "04092 : cannot commit in a trigger"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; /
Quelqu'un à une piste pour contourner ça ?
Cdt
Emilien
Partager