0

あるユーザーがプロシージャのソース コードを変更した場合、プロシージャの新しいバージョンと古いバージョンの違いを見つけて、テーブルに保存したいと考えています。
つまり、追加、変更、または削除された行を見つけたいのです。

「before ddl on schema」でトリガーを使用してから、all_source ビューのソース コードと関数 ORA_SQL_TXT(sql_text) で指定されたソース コードを比較しようとしましたが、関数で指定されたソース コードが原因で機能しません。 ORA_SQL_TXT(sql_text) は行番号順ではありません。

4

1 に答える 1

1

を使用しSELECT .. FROM USER_SOURCES AS OF TIMESTAMP(time you want) WHERE ... ORDER BY LINE;ます。これにより、以前の状態のテーブルが得られます。これから、それを使用しMINUSたり、別のテーブルに入れたりして、好きなことを行うことができます。

最近の変更のみを保存しますが (一部の設定によって異なります)、小さな間違いを犯した場合には非常に優れた機能です。

于 2013-02-15T15:44:17.313 に答える