我创建了Oracle触发器,该触发器通过 i-love-you/i-love-her/you-love-me/you--love--me
执行外部python文件,但是它首先执行python文件,然后将行插入表中。我想要完全相反的操作。
DBMS_SCHEDULER.RUN_JOB()
告诉我正确的方法
答案 0 :(得分:2)
插入表中的行与其他会话可见的行之间有区别。在提交数据之前,任何其他事务都无法看到那些插入的行。如果您的python代码尝试连接到数据库以查看那些行,则不会看到它们。
同样,在触发器完成之前,您的事务无法向客户端(在您的情况下为SQL Developer)报告插入成功。在这种情况下,它需要等到python调用完成后才能返回。
尽管触发器确实有一些好的应用,但通常将其视为“不好的做法”。让会话等待外部任务也是要避免的事情。我建议您重新考虑您要达到的目标的方法。
答案 1 :(得分:0)
你怎么知道的?
想想!
那么,该脚本如何才能在插入行之前 运行,如果恰好是插入行的操作触发并运行了Python脚本?
除非您证明我错了,否则一切都应该没事。