您的位置:首页 > 数据库 > SQL

PLSQLDeveloper中调试含clob字段的存储过程中出现 ORA-03127: 在活动操作结束之前不允许进行操作

2014-08-20 11:24 525 查看
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐