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;

posted @ 2011-04-26 16:15  jianggc.zj  阅读(242)  评论(0)    收藏  举报