批量更新运行时触发器不执行
我正在使用 VB.Net 2008 和 ADO.Net 对 Oracle 数据库进行批量更新。 更新正在工作,但在更新行以强制执行成员的终止终止日期之前,表上有一个触发器。 因此,如果我尝试将终止日期(通过批量更新)设置为 2010 年 1 月 31 日,但该会员的索赔是在 2010 年 2 月 2 日处理的,则触发器将强制终止日期为 2 -2010 年 2 月。 但是,批量更新运行时触发器未执行?
是否有任何 Oracle DB 管理选项可以禁用批量更新触发器?
I am using VB.Net 2008 and ADO.Net to do a Batch Update to our Oracle database.
The updates are working, but there is a trigger on the table before the row is updated to enforce a member's termination termination date.
So if I was trying to set the termination date (via the batch update) to 31-Jan-2010 but the member had a claim that was processed on 2-Feb-2010 the trigger would force the termination date to be 2-Feb-2010. However, the trigger is NOT executing when the batch update runs?
Is there any Oracle DB Admin option that would disable Triggers on Batch Update?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过 SQL*Loader 的直接路径加载可以禁用和重新启用触发器,如所述 这里
批量更新是做什么的。也许如果它执行 DELETE+INSERT,而不是 UPDATE,那么触发器将不会触发。
A direct path load through SQL*Loader can disable and reenable triggers as described here
What does the batch update do. Maybe if it does a DELETE+INSERT, rather than an UPDATE, then the trigger won't fire.
alter trigger 命令可用于禁用触发器,
这将显示所有触发器的启用/禁用状态,
The alter trigger command can be used to disable a trigger,
This will show the enabled/disabled status of all triggers,