【问题标题】:Invalid Property on Class Timestamp类时间戳上的无效属性
【发布时间】:2019-10-14 18:18:46
【问题描述】:

我从查询中收到一个 id 和一个时间戳,当我尝试输出时间戳时,我收到一个无效的属性错误。我正在使用 ojdbc7.jar、Dataweave 2.0 和 Mule 4。

使用转换消息,我可以毫无问题地输出 payload.ID[0]。我尝试将时间戳强制转换为 DateTime 并将其格式化为字符串,但仍然失败。

以下作品

%dw 2.0
output application/json
---
payload.ID[0]

下面给出错误“无效的属性名称:oracle.sql.TIMESTAMP 类上的 shareBytes。验证是否存在正确的设置器,同时在 payload.C​​REATED_DATE.shareBytes 写入 Json。”评估表达式:“%dw 2.0。”

%dw 2.0
output application/json
---
payload.CREATED_DATE[0]

下面给出错误“无法将对象 { class: oracle.sql.TIMESTAMP } (org.mule.weave.v2.module.pojo.reader.JavaBeanObjectValue@6f5eee28) 强制转换为字符串”

%dw 2.0
output application/json
---
payload.CREATED_DATE as String {format: "dd-MMM-yy h:mm:s"}

我希望第二个或第三个示例返回时间戳。

【问题讨论】:

    标签: mule dataweave


    【解决方案1】:

    您可以传递以下系统 (JVM) 属性:oracle.jdbc.J2EE13Compliant=true(如 -Doracle.jdbc.J2EE13Compliant=true)以强制 Oracle 驱动程序返回 java.sql.Timestamp 而不是 oracle.sql。时间戳 - 这将允许您强制 Dataweave 中的 java.sql.Timestamp

    有关 Oracle 驱动程序设置的更多信息,请参阅 https://docs.oracle.com/cd/B28359_01/java.111/b31224/datacc.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 2017-01-18
      • 1970-01-01
      相关资源
      最近更新 更多