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

时间:2014-01-16 16:36:24

标签: oracle mule clob proc

我正在尝试调用oracle数据库函数。输入是CLOB,输出是String值(状态)。这是代码:有效载荷是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>

我没有得到预期的输出&#34; OK&#34;。当我编写自定义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}

1 个答案:

答案 0 :(得分:2)

我通过删除用于将String转换为Clob

的Custom Transformer解决了这个问题