0

我正在为一份工作做 ETL。对于数据源阶段,我输入自定义选择语句。在数据源阶段的输出选项卡中,我定义了 INCEPTION 列数据类型为 Timestamp。INCEPTION 的正确数据类型是日期。我通过 DBEAVER 检查它。但不知何故,IBM Datastage假设它是WVARCHAR。它说ODBC_Connector_0: Schema reconciliation detected a type mismatch for field INCEPTION. When moving data from field type WVARCHAR(min=0,max=10) into DATETIME(fraction=6), data corruption can occur (CC_DBSchemaRules::reportTypeMismatch, file CC_DBSchemaRules.cpp, line 1,838)。我不知道为什么会这样,因为从数据库中显示 INCEPTION 绝对是一个 Date 列。我不知道如何解决这个问题,因为我认为我没有犯错。我做错了什么以及如何解决这个问题?

4

1 回答 1

0

DataStage 从哪里得到它的表定义?DataStage 是一个计算机程序;它不能“决定”任何事情。如果从源导入表定义,那么 INCEPTION 是什么数据类型?如果它是 Date 或 Timestamp,则将该表定义加载到 DataStage 作业中。否则,在 Transformer 阶段使用 StringToTimestamp() 函数显式转换字符串。

于 2020-10-14T23:02:34.267 回答