调用Oracle数据库函数ORA-22922时出现问题:LOB值不存在

调用Oracle数据库函数ORA-22922时出现问题:LOB值不存在,oracle,mule,clob,proc,Oracle,Mule,Clob,Proc,我正在尝试调用oracle数据库函数。输入是CLOB,输出是字符串值(状态)。代码如下:有效负载是Clob <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="UpdateError" queryTimeout="-1" connector-ref="DatabaseNCS" doc:name="Database"> <jdbc-ee:query key="UpdateErro

我正在尝试调用oracle数据库函数。输入是CLOB,输出是字符串值(状态)。代码如下:有效负载是Clob

<jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="UpdateError" queryTimeout="-1" connector-ref="DatabaseNCS" doc:name="Database">
    <jdbc-ee:query key="UpdateError"
             value="Call #[output;string;out] := dbpk_bxf_media.track_pse_errors(#[message.payload])"/>
</jdbc-ee:outbound-endpoint>

我没有得到预期的输出“OK”。当我编写自定义java代码时,这项工作没有任何问题。以下是输出日志(注意输出为ORA-22922:不存在LOB值): 我想知道我做错了什么,以及如何解决这个问题。谢谢

CallableSqlCommandExecutor: SQL: { Call ? := dbpk_bxf_media.track_pse_errors(?) } input params: [oracle.sql.CLOB@1fbb2176] CallableSqlCommandExecutor: Registering output parameters for: { Call ? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor: Executing: { Call ? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor: Command executed successfully: { Call ? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor: Processing resultSets for: { Call ? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor: Processed resultsets: 0 CallableSqlCommandExecutor: Processing output parameters for: { Call ? := dbpk_bxf_media.track_pse_errors(?) } ExecuteSqlStatementStrategy: Obtained result: {output=ORA-22922: nonexistent LOB value} CallableSqlCommandExecutor:SQL:{Call?:=dbpk_bxf_media.track_pse_errors(?)}输入参数:[oracle.SQL。CLOB@1fbb2176] CallableSqlCommandExecutor:正在为以下对象注册输出参数:{Call?:=dbpk_bxf_media.track_pse_errors(?)} CallableSqlCommandExecutor:正在执行:{Call?:=dbpk\u bxf\u media.track\u pse\u errors(?)} CallableSqlCommandExecutor:命令已成功执行:{Call?:=dbpk\u bxf\u media.track\u pse\u errors(?)} CallableSqlCommandExecutor:正在处理以下对象的结果集:{Call?:=dbpk\u bxf\u media.track\u pse\u errors(?)} CallableSqlCommandExecutor:已处理的结果集:0 CallableSqlCommandExecutor:正在处理以下对象的输出参数:{Call?:=dbpk\u bxf\u media.track\u pse\u errors(?)} ExecuteSqlStatementStrategy:获取的结果:{output=ORA-22922:不存在LOB值}
通过删除用于将字符串转换为Clob的自定义转换器,我解决了这个问题

函数的规范是什么?此外,该函数是否执行任何事务?(commit/rollback)函数不做任何事务处理。当我从Multhanks的自定义Java代码调用它时,它工作得很好,可以让您继续!