我有一个Oracle程序
TEST_XML_PARM_CALLER
调用程序
TEST_XML_PARM_CALLEE(parm1 IN CLOB, parm2 OUT CLOB) 
通过 WSO2 ESB、WSO2 DSS。
parm1 是 CLOB 参数,从过程 TEST_XML_PARM_CALLER 发送 XML 内容,parm2 是 CLOB 参数,从过程 TEST_XML_PARM_CALLEE 返回 XML 内容。
从 TEST_XML_PARM_CALLER 到 ESB 到 DSS 到 TEST_XML_PARAM_CALLEE 的调用对于 CLOB 内容(字符串长度大于 4000)是正确的,但是当长度大于 4000 时返回参数(parm2)会引发错误,如下所示
ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 6024, maximum: 4000)
在 WSO2 DSS 中,配置如下
<data name="test_xml_parm">
   <config id="test_db">
      <property name="carbon_datasource_name">test_db</property>
   </config>
   <query id="qry_test_xml_parm" useConfig="test_db">
      <sql>call TEST_XML_PARM_CALLEE(?,?)</sql>
      <result element="rcd" rowName="row">
         <element column="rtn_clob" name="rtn_clob" xsdType="string"/>
      </result>
      <param name="clob_xml" ordinal="1" sqlType="STRING"/>
      <param name="rtn_clob" ordinal="2" sqlType="STRING" type="OUT"/>
   </query>
   <operation name="op_test_xml_parm">
      <call-query href="qry_test_xml_parm">
         <with-param name="clob_xml" query-param="clob_xml"/>
      </call-query>
   </operation>
</data>
任何人都可以告诉我如何解决它?