0
テーブルの特定の列が更新を受け取った場合に目を離したい場合は、その変更を監査テーブルに挿入します。 ANY列が変更された場合、または列が特定の値に変更された場合、何らかの理由でold.column_x!= new.column_xを比較しようとしたときに更新を記録していないときに、このトリガーを書き込むことができました。私はコードのいくつかのバリエーションを試しましたが、これは私が試みた最新のものです。PLSQLのトリガーは、監査テーブルの更新をColumn_Xの更新の場合に記録します。
CREATE OR REPLACE TRIGGER audit_table
AFTER UPDATE ON table_1
FOR EACH ROW
WHEN (new.column_x != old.column_x)
BEGIN
INSERT INTO audit_table (
column_1,
old_column_x,
new_column_x,
auditdtm
)
VALUES (
:old.column_1,
:old.column_x,
:new.column_x,
SYSDATE);
END
いいえ、エラーなしでコンパイルされます。 WHEN行を[WHEN(new.column_x IS NULL)]に変更すると、トリガーが動作し、レコードのその列をNULLにすると、更新が記録されます。 – sandsawks
column_xがnullになると思いますか? – GurV
はい、私のアプリケーションの関数は、その列をNULLまたは01/01/3000に設定します。 – sandsawks