ORA-14551 错误表示“无法在查询中执行 DML 操作”,即在执行一个包含数据查询(如 SELECT 语句)的同时,尝试在同一个逻辑单元(如 PL/SQL 块、触发器或函数)中执行数据操作语言(DML,如 INSERT、UPDATE、DELETE)语句,而这是不被允许的。 可能导致ORA-14551错误出现的常见情况 在触发器中同时包含 SELECT 和 DML 操...
ORA-14551是Oracle数据库中的一个错误代码,表示无法在查询中执行DML操作。DML操作指的是数据操纵语言(Data Manipulation Language),包括插入(INSERT)、更新(UPDATE)、删除(DELETE)等操作。 这个错误通常出现在使用查询语句时,但查询语句中包含了DML操作。Oracle数据库的查询语句主要是用于检索数据,而不是修改数据。因此,...
在声明函数之前加上pragma autonomous_transaction ,在执行DML语句后Commit; 经过如上修改后的函数如下 createorreplacefunctionfun_DxcBillSn(tabTypeinteger,tabNamevarchar2,fieldStrvarchar2)returnintegeris--开启自治事务(解决Oracle ORA-14551: 无法在查询中执行 DML 操作的问题)--pragma autonomous_transaction; seria...
最近在调试一个带DML操作的函数时,一直不成功,在PL/SQL中测试时没问题,通过SQL语句调用函数时就不行了,刚开始一直没找到原因,后来无意间把 函数中捕获异常的代码注释掉,终于通过SQL调试时,弹出了一个“ORA-14551: 无法在查询中执行 DML 操作 .”错误,找到了问题原因,就好找解决办法了,在网上找到一篇文章,大谈...
ORA-14551: 无法在查询中执行 DML 操作 编写了一个oracle函数,函数体内实现一系列数据库的逻辑处理,涉及到数据的增删等操作,返回NCLOB类型。 然后通过查询方式调用函数: SELECT PKG.MY_FUN('A') FROM DUAL; 执行该sql报错:ORA-14551: 无法在查询中执行 DML 操作...
包括执行INSERT、UPDATE和DELETE影响的行数,以及是否执行过TRUNCATE操作。另外,DBMS_STATS.FLUSH_DATABASE...
如何绕过“ora-14551 无法在查询中执行DML操作”动态和/或私有端口(Dynamic and/or Private Ports):端口号从49152到65535。理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。如果根据所提供的服务...
Oracle中 “ORA-14551: 无法在查询中执行 DML 操作” 如何解决 2019-04-16 13:51 − ... 小小邪 0 5727 相关推荐 【oracle】ORA-00947: 没有足够的值 2019-12-20 21:07 − insert 时 对应NOT NULL 的列 必须有值... 乡屯米卒 0 3928 ORA...
ORA-13033: SDO_GEOMETRY 对象中位于 SDO_ELEM_INFO_ARRAY 中的数据无效 ORA-13034: SDO_GEOMETRY 对象中位于 SDO_ORDINATE_ARRAY 中的数据无效 ORA-13035: SDO_GEOMETRY 对象中的数据 (测量数据中的弧) 无效 ORA-13036: 对于点数据, 不支持操作 [] ...
在触发器中使用DDL 写数据库 对数据库有写操作(INSERT、UPDATE、DELETE、CREATE、ALTER、COMMIT)的存储过程或函数是无法简单的用SQL来调用的,此时可以将其设为自治事务,从而避免ORA-14552(无法在一个查询或DML中执行DDL、COMMIT、ROLLBACK)、ORA-14551(无法在一个查询中执行DML操作)等错误。需要注意的是函数必须有返...