【问题标题】:Mule:Database update failing although query works in OracleMule:尽管查询在 Oracle 中有效,但数据库更新失败
【发布时间】:2017-05-11 21:13:26
【问题描述】:

也许是我看这个太久了。但是我有这个我正在尝试运行的 Oracle 更新查询,我已经验证了该查询与 SQL Developer 上的硬编码值一起工作,但是当我从我的流 Mule 运行它时它失败了。谁能告诉我我做错了什么?

这里是查询:

<db:update config-ref="DBConf" doc:name="abcd">
    <db:dynamic-query><![CDATA[UPDATE myTable 
                                SET TYPE= 'Entry',
                                 ENTERED_DATE=SYSDATE,
                                 ENTRY_BY= 2345,
                                 ENTRY_DATE=TO_DATE('#[flowVars.entryDate]','YYYY-MM-DD')
                                 WHERE ID = 'abcd1234']]>
    </db:dynamic-query>
</db:update>

flowVars.entryDate 值为 '2017-05-10'

这会引发以下错误:

消息:ORA-01841:(完整)年份必须介于 -4713 和 +9999 之间,并且不能为 0 (java.sql.SQLDataException)。消息负载的类型:整数

现在相同的查询可以像我在 SQL Developer 中所说的那样工作,但在 Mule 中却不行,任何人都可以提供任何输入

【问题讨论】:

  • 嗨,我猜变量 #[flowVars.entryDate] 不是日期值。像这样硬编码日期和测试 TO_DATE('2017-05-10','YYYY-MM-DD')。

标签: database oracle mule


【解决方案1】:

您可以在以下链接中找到相同的问题答案: Oracle: year must be between -4713 and +9999, and not be 0

  1. 尝试一次。 TO_DATE('2012-05-12','yyyy-mm-dd')。
  2. 删除 #[flowvar.entrydate] 的引号

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2019-11-03
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    相关资源
    最近更新 更多