用select ... from dual 调用函数的时候,报ORA-14551: 无法在查询中执行 DML 操作。
解决方法:
函数声明时IS后面加 PRAGMA AUTONOMOUS_TRANSACTION;,操作语句后再加 COMMIT;
关于PRAGMA AUTONOMOUS_TRANSACTION(自治事务)的解释:http://blog.sina.com.cn/s/blog_4f925fc30100h8ld.html
本文介绍了解决在使用Oracle数据库时遇到的ORA-14551错误的方法。该错误通常发生在尝试从DUAL表调用带有DML操作的函数时。文章提供了一种解决方案,即在函数声明时加入PRAGMA AUTONOMOUS_TRANSACTION,并在执行DML操作后添加COMMIT。
用select ... from dual 调用函数的时候,报ORA-14551: 无法在查询中执行 DML 操作。
解决方法:
函数声明时IS后面加 PRAGMA AUTONOMOUS_TRANSACTION;,操作语句后再加 COMMIT;
关于PRAGMA AUTONOMOUS_TRANSACTION(自治事务)的解释:http://blog.sina.com.cn/s/blog_4f925fc30100h8ld.html

被折叠的 条评论
为什么被折叠?