oracle trigger 记录pl/sql 代码变更记录
CREATE TABLE SOURCE_HIST -- Create history table
AS SELECT SYSDATE CHANGE_DATE, ALL_SOURCE
FROM ALL_SOURCE WHERE 1=2;
CREATE OR REPLACE TRIGGER change_hist
AFTER CREATE ON SCOTT.SCHEMA -- Change SCOTT to your schema name
DECLARE
BEGIN
IF ORA_DICT_OBJ_TYPE in ('PROCEDURE', 'FUNCTION', 'PACKAGE',
'PACKAGE BODY', 'TYPE', 'TYPE BODY') then
INSERT INTO SOURCE_HIST
SELECT sysdate, all_source.*
FROM ALL_SOURCE
WHERE TYPE = ORA_DICT_OBJ_TYPE -- DICTIONARY_OBJ_TYPE IN 8i
AND NAME = ORA_DICT_OBJ_NAME; --
END IF;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('ri');
raise_application_error(-20000, SQLERRM);
END;
浙公网安备 33010602011771号