PLSQLDeveloper中调试含clob字段的存储过程中出现 ORA-03127: 在活动操作结束之前不允许进行操作
2014-08-20 11:24
525 查看
PLSQLDeveloper中调试含clob字段的存储过程中出现 ORA-03127: 在活动操作结束之前不允许进行操作,百思不得其解。
后查看英文书籍中clob讲解后突然觉悟,clob实际就是指针,调试中出线ora03127,但c#调用时未出现,证明存储过程中clob的用法是正确的,出现错误的原因是未释放clob的空间。
在测试窗口最后加上dbms_lob.freetemporary(:strlogclob);即可。
存储过程代码如下
原先出现ora03127错误的测试代码如下:
改正后的测试代码如下:
结束,调试过程清静了,再也没有ora03127。
后查看英文书籍中clob讲解后突然觉悟,clob实际就是指针,调试中出线ora03127,但c#调用时未出现,证明存储过程中clob的用法是正确的,出现错误的原因是未释放clob的空间。
在测试窗口最后加上dbms_lob.freetemporary(:strlogclob);即可。
存储过程代码如下
procedure proc_update( strLogClob out clob, retValue out int )
原先出现ora03127错误的测试代码如下:
declare -- Non-scalar parameters require additional processing begin -- Call the procedure proc_update(strlogclob => :strlogclob, retvalue => :retvalue); end;
改正后的测试代码如下:
declare -- Non-scalar parameters require additional processing begin -- Call the procedure proc_update(strlogclob => :strlogclob, retvalue => :retvalue); dbms_output.put_line('length(clob):'||dbms_lob.getlength(:strlogclob)); --dbms_output.put_line('clob:'||:strlogclob); --注意,测试时要释放clob,但在C#端调用时,要由C#的调用方自行释放 dbms_lob.freetemporary(:strlogclob); end;
结束,调试过程清静了,再也没有ora03127。
相关文章推荐
- SQL Server 第四堂课,创建存储过程。存储过程是一组编译在单个执行计划中的transact-SQL语句。存储过程相当于C#函数,可以允许模块化程序设计,允许更快执行如果某操作需要大量transct-SQL代码或需要重复执行,将在创建存储过程中对其进行分析和优化。
- 解决ORA-02021: 不允许对远程数据库进行 DDL 操作下面通过DBLINK调用远程过程来执行这样的操作。
- 在存储过程中操作ORACLE CLOB字段
- oracle 11g dataguard 出现ORA-16143: 终端恢复过程中或之后不允许进行 RFS 连接解决方法
- 调用远程数据库的存储过程出现“ORA-02064不支持分布式操作”错误的解决方法
- 在存储过程中,经常要对时间进行操作,所以写下下面文字
- Oracle SQL Developer中进行存储过程调试
- 调试存储过程:ORA-0131 Insufficient privileges 处理
- 用jsp对oracle的clob字段进行操作
- 可在任何一个表(或视图)中按任何一个字段值进行查询的通用存储过程(精确查询)
- java调用存储过程进行增、删、查、改操作(源代码)
- 设置SQL Server 2005允许远程调试存储过程
- 通过 Visual Studio 对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试
- 演示了通过存储过程来获取某个字段的值,并对该字段值进行了判断
- 如何执行存储过程以及如何进行调试?
- oracle clob 存储过程初始化与操作
- SQL2000安装过程中出现“以前进行的程序创建了挂起的文件操作,运行安装程序前,必须重新启动”的解决办法
- 用jsp对oracle的clob字段进行操作
- 通过 Visual Studio 对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试
- 通过 Visual Studio 对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试