PLSQLDeveloper中调试含clob字段的存储过程中出现 ORA-03127: 在活动操作结束之前不允许进行操作
PLSQLDeveloper中调试含clob字段的存储过程中出现 ORA-03127: 在活动操作结束之前不允许进行操作,百思不得其解。
后查看英文书籍中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。
posted on 2014-08-20 11:24 V吃饭睡觉打豆豆V 阅读(1035) 评论(0) 编辑 收藏 举报