没有PRAGMA AUTONOMOUS_TRANSACTION的情况下,触发器如何执行DDL语句?

时间:2019-08-07 19:05:04

标签: oracle triggers transactions pragma

为了测试工作项目的某些数据库部分,我决定使用每晚执行的触发器来对其进行测试。

每晚的工作

  1. 擦除临时表中的所有内容
  2. 从外部数据库重新填充这些表
  3. 将临时表合并到主表中
  4. 其他几个工作

出于这些测试的目的,我不愿意更改源数据库,但是当每夜工作抹去表时,我不能只输入可以用于我的测试的值。

由于加载过程,一旦完成加载,就会触发触发器,从而更改该表中的数据。

我的问题是我现在希望触发器执行DDL语句(提交),但又不具有PRAGMA AUTONOMOUS_TRANSACTION。 DDL语句要么关闭初始触发器(因此它将仅触发一次),要么激活触发器,该触发器将在下一次夜间作业运行时清理测试结果(例如,手动触发时)。

我不想将其设置为PRAGMA AUTONOMOUS_TRANSACTION,因为在另一笔交易中,夜间工作和触发器工作不会互相看到,因此无法完成测试的目的,例如,添加新员工,或改名。

0 个答案:

没有答案
相关问题