收到批处理错误 运行 更新 talend 到 PostgreSQL 数据库
receiving batch error running an update on talend into PostgreSQL database
我有一个 talend 解决方案,里面有一个 tMap --> tPostgreSQLOutput
.
架构中有一个integer
(关键字段)和一个格式为"dd-MM-yyyy HH:mm:ss"
的日期(时间戳)。目的是用当前 time/date(时间戳)更新日期字段。
在 tMap 中使用此 talend 函数调用设置日期:
TalendDate.parseDate("yyyy-MM-dd HH:mm:ss", TalendDate.getDate("yyyy-MM-dd HH:mm:ss"))
我确认了日期(时间戳)格式,确认了PostgreSQL数据库中的时间戳数据类型。但是,我在运行时收到此错误:
Batch entry 0 UPDATE "bitcoin_options" SET "last_notified" = 2017-04-08 12:02:40.000000 -05:00:00 WHERE "id" = 3 was aborted. Call getNextException to see the cause.
我接受了错误的查询并手动 运行 将其输入到 PostgreSQL 中。我收到了这样的回复:
ERROR: syntax error at or near "11"
LINE 1: ...bitcoin_options" SET "last_notified" = 2017-04-08 11:53:11.0...
^
我再次检查了格式、数据类型,并将它们与其他表及其 UPSERTS 进行了比较。相同的格式。相同的数据类型。
此外,我尝试在日期和时间之间添加第二个 space,但没有用。
更新 1
我将 tMap
输出更新为:
TalendDate.getCurrentDate();
并得到同样的错误。
谢谢
更新 2
这是我的 Talend 布局:
请注意您的时间戳格式不正确:
UPDATE "bitcoin_options" SET "last_notified" = '2017-04-08 12:02:40.000000 -05:00:00' WHERE "id" = 3
它缺少围绕时间戳的单引号。如果您添加了这些,您就可以开始了。
我明白了。经过多次试验和错误。
tPostgresSQLCommit x3 是多余的。当我删除前两个并只放置一个时,它给了我正确的输出。
经验教训:您只需要 1 次提交。
我有一个 talend 解决方案,里面有一个 tMap --> tPostgreSQLOutput
.
架构中有一个integer
(关键字段)和一个格式为"dd-MM-yyyy HH:mm:ss"
的日期(时间戳)。目的是用当前 time/date(时间戳)更新日期字段。
在 tMap 中使用此 talend 函数调用设置日期:
TalendDate.parseDate("yyyy-MM-dd HH:mm:ss", TalendDate.getDate("yyyy-MM-dd HH:mm:ss"))
我确认了日期(时间戳)格式,确认了PostgreSQL数据库中的时间戳数据类型。但是,我在运行时收到此错误:
Batch entry 0 UPDATE "bitcoin_options" SET "last_notified" = 2017-04-08 12:02:40.000000 -05:00:00 WHERE "id" = 3 was aborted. Call getNextException to see the cause.
我接受了错误的查询并手动 运行 将其输入到 PostgreSQL 中。我收到了这样的回复:
ERROR: syntax error at or near "11"
LINE 1: ...bitcoin_options" SET "last_notified" = 2017-04-08 11:53:11.0...
^
我再次检查了格式、数据类型,并将它们与其他表及其 UPSERTS 进行了比较。相同的格式。相同的数据类型。
此外,我尝试在日期和时间之间添加第二个 space,但没有用。
更新 1
我将 tMap
输出更新为:
TalendDate.getCurrentDate();
并得到同样的错误。 谢谢
更新 2
这是我的 Talend 布局:
请注意您的时间戳格式不正确:
UPDATE "bitcoin_options" SET "last_notified" = '2017-04-08 12:02:40.000000 -05:00:00' WHERE "id" = 3
它缺少围绕时间戳的单引号。如果您添加了这些,您就可以开始了。
我明白了。经过多次试验和错误。 tPostgresSQLCommit x3 是多余的。当我删除前两个并只放置一个时,它给了我正确的输出。
经验教训:您只需要 1 次提交。