ORA-25017: cannot reference NEW ROWID for movable rows in before triggers ORACLE 报错 故障修复 远程处理
文档解释
ORA-25017: cannot reference NEW ROWID for movable rows in before triggers
Cause: NEW ROWID was referenced in a before row trigger which is defined on an index-organized table, or a partitioned table with enabled movement of rows. The ROWID cannot be computed in a before row update trigger because it depends on the actual values of the row
Action: Remove references to NEW ROWID from the trigger definition.
ORA-25017: 不允许在before触发器中引用可移动行的NEW ROWID
官方解释
当在一个before触发器中查询系统表NEW,将会导致ora-25017错误。25017 代码表明,当在before触发器中使用系统表NEW时,未引用可移动行。
常见案例
当在before触发器中查询系统表NEW时,将导致ORA-25017错误。最可能在delete或update操作时发生,如果该表有before触发器,便可能导致该错误。
一般处理方法及步骤
1. 避免使用触发器,而是把相关逻辑放到应用层中。
2. 如果必须使用触发器,那么注意当在before触发器中不要引用可移动行的NEW ROWID。
3. 使用for each row模式时,可以使用:NEW.COLUMN,但是不能直接使用NEW ROWID,因为在不同的数据库操作系统中ROWID的存储方式不同。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341