2
Oracle用の疑似バージョン管理とリポジトリを実装しようとしています。 考えられるのは、ストアドファンクション/プロシージャが変更された場合、または作成されたグローバルDATABASE トリガが起動されたときに、変更されたオブジェクトの現在のソースを取得して をテーブルに格納する場合です。 だから私は2つのトリガーを使用しています:Oracle AFTER/BEFORE CREATE ON DATABASEトリガー:オブジェクトソースにアクセスする方法
TRIGGER BEFORE_MODIFY before ALTER or CREATE ON DATABASE
TRIGGER AFTER_MODIFY after ALTER or CREATE ON DATABASE
すべてがAFTER_MODIFYトリガーがコンパイルされたオブジェクトの古いバージョン(ソース)を見除き、正常に動作します。 私はSYS.SOURCE$.SOURCE
からのソースを取得しようとしました。同じ結果を持つdbms_metadata.get_ddl(OBJ_TYPE, OBJ_NAME, OBJ_OWNER)
から2番目の試みとして試しました。
「Oracle 10g +ではできません」などのアドバイスや明確な回答を探しています。
create or replace TRIGGER AFTER_MODIFY after CREATE ON hr.SCHEMA
declare
sql_text ora_name_list_t;
n number;
begin
n := ora_sql_txt(sql_text);
FOR i IN 1..n LOOP
dbms_output.put_line(sql_text(i));
END LOOP;
end;
/
おかげゲイリー、私を助け、うまく動作します: – Dimus