繁体   English   中英

错误:列“DOJ”的类型是没有时区的时间戳,但表达式的类型是字符变化

[英]ERROR: column "DOJ" is of type timestamp without time zone but expression is of type character varying

我正在尝试从 oracle 数据库表中提取数据并使用 nifi 插入到 postgres 数据库表中

我将 ExecuteSQLRecord 与 JsonRecordSetWriter 一起使用,并将此 json 数据提供给 PutDataBaseRecord,记录读取器为 JsonTreeReader。

我在队列中的数据如下:-

[ {
  "EMP_ID" : "1",
  "DOJ" : "631170000000"
}, {
  "EMP_ID" : "2",
  "DOJ" : "631170000000"
}]

根据使用指南

通过假设 Long 值是自纪元(格林威治标准时间午夜,1970 年 1 月 1 日)以来的毫秒数,可以将任何数值强制转换为日期、时间或时间戳类型。 如果字符串值的格式与配置的“日期格式”、“时间格式”或“时间戳格式”匹配,则可以将字符串值强制转换为日期、时间或时间戳类型。

但在我的情况下,日期作为字符串提取到毫秒。

我是否缺少有关日期/时间戳字段的 JsonRecordSetWriter 和 JsonTreeReader 的任何配置。

我在 JsonRecordSetWriter 中看到了提供日期、时间或时间戳格式的选项。 在我的 oracle 数据库日期字段中具有如下数据:- 2001-12-01 00:00:00但我如何在 JsonRecordSetWriter 的日期属性中提供此值,因为它期望日期格式与 Java 日期格式相同。

如何克服我的问题,如何从 oracle 日期字段或毫秒中提取时区格式的数据,但作为数字...

尝试将ExecuteSQLRecordUse Avro Logical Types设置为true ,在这种情况下,根据使用文档,日期不应该是字符串

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM