2016-04-06 21 views
1

すべてのoracle(12c)オブジェクトの変更を追跡するソース管理に監査トリガーが使用されています。どのようにして( "alter"または "rename"を介して)リネーム内で "new"オブジェクト名を取得できますか? ORA_DICT_OBJ_NAMEの「古い」名前が「ALTERまたはRENAMEまたはDDL ON DATABASE」の前後にトリガーされた場合でも、ORA_DICT_OBJ_NAMEの「古い」名前が表示されます。Oracle 12C監査トリガーの名前を変更

答えて

1

関数ORA_SQL_TXTを使用すると、(関数のoutパラメーターを使用して)トリガー文をキャッチし、新しいオブジェクトの名前を抽出できます。

編集: 私はORA_SQL_TXT;

+1

ありがとうとORA_SQL_TEXTを置き換え!私はその仕事をすることができました! ora_sysevent = 'RENAME'の場合 \t宣言 \t \t n PLS_INTEGER; \t \t sql_text sys.dbms_standard.ora_name_list_t; \t begin \t \t n:= ora_sql_txt(sql_text); \t \t FOR IN IN 1. INLOOP \t \t \t v_obj_original:= v_obj_original || sql_text(i); \t \t END LOOP; \t例外 \tその他の場合 \t \t v_obj_original:= '例外でDDLを取得しています:' || SQLCODE || ' - ' || SQLERRM || 'で' || TO_CHAR(SYSDATE、 'HH24:MI'); \t end; end if; – Christine

関連する問題