为了测试工作项目的某些数据库部分,我决定使用每晚执行的触发器来对其进行测试。
每晚的工作
出于这些测试的目的,我不愿意更改源数据库,但是当每夜工作抹去表时,我不能只输入可以用于我的测试的值。
由于加载过程,一旦完成加载,就会触发触发器,从而更改该表中的数据。
我的问题是我现在希望触发器执行DDL语句(提交),但又不具有PRAGMA AUTONOMOUS_TRANSACTION。 DDL语句要么关闭初始触发器(因此它将仅触发一次),要么激活触发器,该触发器将在下一次夜间作业运行时清理测试结果(例如,手动触发时)。
我不想将其设置为PRAGMA AUTONOMOUS_TRANSACTION,因为在另一笔交易中,夜间工作和触发器工作不会互相看到,因此无法完成测试的目的,例如,添加新员工,或改名。