【问题标题】:Issue calling Oracle Database Function ORA-22922: nonexistent LOB value调用 Oracle 数据库函数 ORA-22922 时出现问题:不存在的 LOB 值
【发布时间】:2014-01-16 16:36:24
【问题描述】:

我正在尝试调用 oracle 数据库函数。输入是 CLOB,输出是字符串值(状态)。下面是代码:payload 是一个 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:{调用? := dbpk_bxf_media.track_pse_errors(?) } 输入参数:[oracle.sql.CLOB@1fbb2176] CallableSqlCommandExecutor:注册输出参数:{ Call ? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor:执行:{ 调用? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor:命令执行成功:{ Call ? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor:处理结果集:{ Call ? := dbpk_bxf_media.track_pse_errors(?) } CallableSqlCommandExecutor:处理的结果集:0 CallableSqlCommandExecutor:处理输出参数:{ Call ? := dbpk_bxf_media.track_pse_errors(?) } ExecuteSqlStatementStrategy:获得的结果:{output=ORA-22922:不存在的 LOB 值}

【问题讨论】:

  • 该功能的规格是什么?此外,该功能是否进行任何交易? (提交/回滚)
  • 函数不做任何事务处理。当我从 Mule 的自定义 Java 代码中调用它时它工作正常

标签: oracle mule clob proc


【解决方案1】:

我通过删除用于将字符串转换为 Clob 的自定义转换器解决了这个问题

【讨论】:

  • 感谢您的关注!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
相关资源
最近更新 更多