Oracle在插入操作之前触发执行外部文件

时间:2018-10-23 18:34:36

标签: python-3.x oracle oracle11g oracle-sqldeveloper database-trigger

我创建了Oracle触发器,该触发器通过 i-love-you/i-love-her/you-love-me/you--love--me 执行外部python文件,但是它首先执行python文件,然后将行插入表中。我想要完全相反的操作。

DBMS_SCHEDULER.RUN_JOB()

告诉我正确的方法

2 个答案:

答案 0 :(得分:2)

插入表中的行与其他会话可见的行之间有区别。在提交数据之前,任何其他事务都无法看到那些插入的行。如果您的python代码尝试连接到数据库以查看那些行,则不会看到它们。

同样,在触发器完成之前,您的事务无法向客户端(在您的情况下为SQL Developer)报告插入成功。在这种情况下,它需要等到python调用完成后才能返回。

尽管触发器确实有一些好的应用,但通常将其视为“不好的做法”。让会话等待外部任务也是要避免的事情。我建议您重新考虑您要达到的目标的方法。

答案 1 :(得分:0)

你怎么知道的?

想想!

  • 你有一张桌子
  • 该表上有一个触发器
  • 将数据插入表中并触发时触发...
  • ...调用Python脚本

那么,该脚本如何才能在插入行之前 运行,如果恰好是插入行的操作触发并运行了Python脚本?

除非您证明我错了,否则一切都应该没事。