【发布时间】:2019-07-19 18:02:03
【问题描述】:
当我尝试将日期字段从源限定符链接到 Informatica 中的目标表时,出现以下错误: 错误 2019 年 7 月 19 日上午 9:05:26 node01_dev WRITER_1_*_1 WRT_8229 发生数据库错误: FnName: Execute -- [Informatica][ODBC SQL Server Wire Protocol driver]带零刻度的时间戳参数必须具有 13、16 或 19 的精度。参数编号:1,精度:12。 FnName: Execute -- [DataDirect][ODBC lib] 函数序列错误
我用另一个工作流做了同样的事情(使用日期时间作为目标)并且它运行成功。
我已在互联网上搜索此错误消息,但我搜索的解决方案均未解决问题。
目标表 SA_Cases 需要将数据插入其中。现在,监视器显示所有行都被拒绝了。
源是 Oracle 中的一个表。目标是 Microsoft SQL Server 中的表
enter image description here enter image description here
这是有效的映射enter image description here
【问题讨论】:
-
有问题的会话和已知好的会话之间的会话时间戳精度是否相同?源定义是否设置为使用相同的 odbc 驱动程序?当使用旧的 odbc 驱动程序时,我们之前遇到过 oracle 时间戳精度不够高的问题。
-
您说得对,这与 Oracle 时间戳没有足够高的精度有关。我不知道如何解决这个问题。会话时间戳精度在有效会话和有问题会话中完全相同。
-
我认为这必须是源>日期字段中的精度与目标>日期字段的精度不同。 source>date 字段来自 Oracle,日期类型为“date”,而 target>date 字段来自 MIcrosoft SQL,日期类型为“datetime”。
-
您能否使用映射调试器来验证在好映射和坏映射之间从 oracle 源表中出来的日期的精度是否相同?我认为创建源时驱动程序不一样,这可能会导致您没有毫秒精度。这是 datadirect 版本之间的一个已知问题。
标签: datetime target informatica