【发布时间】:2020-05-02 22:34:34
【问题描述】:
我正在尝试使用 Mulesoft 将对象从 Oracle 数据库传输到 SQL Server 数据库。其中一列是带有时区的时间戳,但每当我传输它时,我都会收到此错误:
org.mule.runtime.core.internal.message.ErrorBuilder$ErrorImplementation
description=将数据类型 nvarchar 转换为 datetimeoffset 时出错。
errorType=DB:QUERY_EXECUTION
原因=org.mule.extension.db.api.exception.connection.QueryExecutionException 错误消息=-
childErrors=[]
我尝试使用此解决方案,但仍然无法正常工作:
payload.FILE_DATE_INSERT as String {format: "DD-MON-RR HH.MI.SSXFF AM TZR"} as LocalDateTime {format: "yyyy-MM-dd'T'HH:mm:ssZ"}
错误:
无法将 Object { class: oracle.sql.TIMESTAMPTZ } (org.mule.weave.v2.module.pojo.reader.JavaBeanObjectValue@eb085528) 强制转换为字符串
11| FILE_DATE_INSERT: payload.FILE_DATE_INSERT as String {format: "DD-MON-RR HH.MI.SSXFF AM TZR"} as LocalDateTime {format: "yyyy-MM-dd'T'HH:mm:ssZ"},
追踪:
在 main (line: 11, column: 19)" 评估表达式:"{ FILE_CODE:有效载荷.FILE_CODE, FILECONTENTTYPE_CODE:有效载荷.FILECONTENTTYPE_CODE, FILE_NAME:有效载荷.FILE_NAME, FILE_SIZE:有效载荷.FILE_SIZE, FILE_STATUS:有效载荷.FILE_STATUS, USER_CODE:有效载荷.USER_CODE, FILE_UPLOAD_CODE:有效载荷.FILE_UPLOAD_CODE, FILE_UPLOAD_TEMP:有效载荷.FILE_UPLOAD_TEMP, FILESTORAGE_CODE:有效载荷.FILESTORAGE_CODE, FILE_DATE_INSERT:payload.FILE_DATE_INSERT 作为字符串 {格式:“DD-MON-RR HH.MI.SSXFF AM TZR”} 作为 LocalDateTime {格式:“yyyy-MM-dd'T'HH:mm:ssZ”}, }”。 错误类型:MULE:EXPRESSION 元素:DOC_TFILEMigrationFlow/processors/1/processors/0 @ DatabaseConnectorPOC:docLogic.xml:75(插入 DOC_TFILE) 元素 XML: {调用 InsertIntoFile (:FILE_CODE,:FILECONTENTTYPE_CODE,:FILE_NAME,:FILE_SIZE,:FILE_STATUS,:USER_CODE,:FILE_UPLOAD_CODE, :FILE_UPLOAD_TEMP,:FILESTORAGE_CODE, FILE_DATE_INSERT)} #[{ FILE_CODE:有效载荷.FILE_CODE, FILECONTENTTYPE_CODE:有效载荷.FILECONTENTTYPE_CODE, FILE_NAME : 有效载荷.FILE_NAME, FILE_SIZE : 有效载荷.FILE_SIZE, FILE_STATUS : 有效载荷.FILE_STATUS, USER_CODE:有效载荷.USER_CODE, FILE_UPLOAD_CODE:有效载荷.FILE_UPLOAD_CODE, FILE_UPLOAD_TEMP:有效载荷.FILE_UPLOAD_TEMP, FILESTORAGE_CODE:有效载荷.FILESTORAGE_CODE, FILE_DATE_INSERT:payload.FILE_DATE_INSERT as String {format: "DD-MON-RR HH.MI.SSXFF AM TZR"} as LocalDateTime {format: "yyyy-MM-dd'T'HH:mm:ssZ"}, }]
(为所有内容设置调试级别日志记录或“-Dmule.verbose.exceptions=true”)
有谁知道如何使用 Dataweave 正确转换它?
谢谢!
【问题讨论】:
-
您使用的是最新版本的 DB 连接器吗?这是一个错误
-
我已经更新到最新版本,但错误仍然存在。
-
您是否有尝试格式化的原始时间戳值的示例?
-
是的。在这里:19 年 11 月 10 日 02.06.50.708000000 PM 欧洲/伦敦
标签: mule dataweave mulesoft timestamp-with-timezone