我正在尝试调用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}
答案 0 :(得分:2)
我通过删除用于将String转换为Clob
的Custom Transformer解决了这个问题