ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Ora-14551问题求助,怎么能在查询语句中执行DML语句

Ora-14551问题求助,怎么能在查询语句中执行DML语句

原创 Linux操作系统 作者:279531451 时间:2009-11-16 10:24:29 0 删除 编辑

今天用 select  aplm.f_ss_get_seqid('P01',null,null,null)  from dual ;

语句执行一个函数取值问题,结果报了ORA-14551: cannot perform. a DML operation inside a query -

查询资料发现:

对数据库有写操作(INSERT、UPDATE、DELETE、CREATE、ALTER、COMMIT)的函数,是无法简单的用SQL来调用的.

使用"自主事物",可以解决这个问题.

其实"自主事物"的功能,主要是解决回滚时,标记了PRAGMA AUTONOMOUS_TRANSACTION;的代码块不受外面调用的事物作用.

在解决触发器更新不成功时,如果按默认,记录日志的也将回滚,用该方法强制记录日志,效果较好.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7551038/viewspace-619690/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-09-01

  • 博文量
    100
  • 访问量
    154539