Plsql ORA-22275的原因:指定的LOB定位器无效
我有下面的代码Plsql ORA-22275的原因:指定的LOB定位器无效,plsql,clob,Plsql,Clob,我有下面的代码 DECLARE tmp_ CLOB := empty_clob(); BEGIN Dbms_Output.Put_Line('Test 4: Set CLOB "A" and then overwrite with empty_clob():'); Dbms_Output.Put_Line(' Expected: <PARENT><VALUE></VALUE></PARENT>'
DECLARE
tmp_ CLOB := empty_clob();
BEGIN
Dbms_Output.Put_Line('Test 4: Set CLOB "A" and then overwrite with empty_clob():');
Dbms_Output.Put_Line(' Expected: <PARENT><VALUE></VALUE></PARENT>');
in_ := Plsqlap_Record_API.New_Record('PARENT');
Plsqlap_Record_API.Set_Value(in_, 'VALUE', TO_CLOB('A'));
Plsqlap_Record_API.Set_Value(in_, 'VALUE', tmp_);
Plsqlap_Record_API.To_Xml(xml_, in_);
Plsqlap_Record_API.Clear_Record(in_);
Dbms_Output.Put_Line(' Result: ' || xml_);
EXCEPTION
WHEN OTHERS THEN
Dbms_Output.Put_Line(' Result: ' || SQLERRM);
END;
声明
tmp_uclob:=空的_CLOB();
开始
Dbms_Output.Put_Line('测试4:设置CLOB“A”,然后用空的_CLOB()覆盖:');
Dbms_Output.Put_行('Expected:');
in:=Plsqlap_Record_API.New_Record('PARENT');
Plsqlap_Record_API.Set_Value(在“Value”中)设置为_CLOB('A');
Plsqlap_记录_API.Set_值(在“值”中,tmp_);
Plsqlap_Record_API.To_Xml(Xml_u,in_u);
Plsqlap_记录_API。清除_记录(in_);
Dbms|u Output.Put_行('Result:'| | xml|);
例外情况
当其他人
Dbms_Output.Put_行('Result:'| | SQLERRM);
结束;
结果 测试4:设置CLOB“A”,然后用空的\u CLOB()覆盖:
预期结果:ORA-22275: 指定的LOB定位器无效
尝试如下初始化clob:
dbms_lob.createtemporary(tmp_,true)代码>
与此相反:
tmp_u-CLOB:=empty_-CLOB()代码>尝试如下初始化clob:
dbms_lob.createtemporary(tmp_,true)代码>
与此相反:
tmp_u-CLOB:=empty_-CLOB()代码>您不能声明tmp\uclob:=empty\u CLOB()
因为这是DBMS_LOB的实现限制
根据oracle文档:为了成功完成DBMS_LOB子程序,必须提供一个输入定位器,该定位器表示数据库表空间或外部文件系统中已经存在的LOB
你可以参考
正如Plirkee所建议的,声明临时过程参数是有效的您不能声明tmp_u-CLOB:=empty_-CLOB()
因为这是DBMS_LOB的实现限制
根据oracle文档:为了成功完成DBMS_LOB子程序,必须提供一个输入定位器,该定位器表示数据库表空间或外部文件系统中已经存在的LOB
你可以参考
根据Plirkee的建议,声明临时过程参数是有效的请确保在发布前访问SO。请确保在发布前访问SO。@user3235283欢迎您。别忘了投票并接受。@user3235283不客气。别忘了投票并接受。