0

我们正在使用 Attunity 工具将 mySQL 数据库中的数据插入到其他 mySQL 数据库中,并且在源数据库中定义为时间戳的列中的“0000-00-00 00:00:00”值存在问题。

Attunity 任务不返回任何错误消息,只会永远运行。

手册中有这样一句话:'如果DATETIME和TIMESTAMP数据类型指定了“零”值(即0000-00-00),则需要确保复制任务中的目标数据库支持“零” DATETIME 和 TIMESTAMP 数据类型的值。如果它们不受支持,您可以使用转换来指定支持的值(例如 1970)。否则,它们将在目标上记录为空。

尽管如此,如果我尝试使用表达式生成器转换值,通过测试表达式函数的工作原理,但是通过运行相同的行为,没有错误消息只是运行不会t finish and doesn插入任何值。

尝试了以下在表达式生成器中正确工作的函数:replace($column_name, '0000-00-00 00:00:00','1000-01-01 00:00:00') 表达式生成器支持 SQLite 函数。

CASE WHEN $column_name = '0000-00-00 00:00:00' THEN '1000-01-01 00:00:00' ELSE $column_name END

似乎 attunity 工具首先插入数据失败,然后执行操作,然后为时已晚。

将 attunity 中的数据类型转换为字符串也无济于事。

我没有什么可以尝试的想法了。

你能帮忙吗?

谢谢

4

0 回答 0