Hallo,
hat jemand von euch eine Idee wie ich in einer PL/SQL-Prozedur einen Trigger erstellen kann? Ich suche eine Möglichkeit einen CREATE TRIGGER... in einer Prozedur abzusetzen.
Du kannst in einer Procedure keine DDL-Befehle ausführen, sondern nur DML-Befehle. Allerdings gibt's bei Oracle zumindest noch den Trick über EXECUTE IMMEDIATE.
Das sieht so aus, dass Du Dir den SQL-Befehl selbst zusammenbasteln musst als String und den dann an EXECUTE IMMEDIATE zur Ausführung übergeben kannst.
create or replace procedure test(trigger_name varchar2, table_name varchar2) as
begin
EXECUTE IMMEDIATE 'CREATE OR REPLACE TRIGGER ' || trigger_name || ' BEFORE INSERT ON ' || table_name || ' FOR EACH ROW BEGIN ... END;';
end test;
(oder so ähnlich)
Viele Grüße,
Christian