首页 > 解决方案 > 从保存为 0002-11-30 (oracle) 的 DB2 中输入 null(date)

问题描述

我从 DB2 z/os 表中提取了数据,数据类型如下;

表:生活在 DB2 中

UPD_DATE TIMESTAMP ,
SEND_FILE CHAR ,
SEND_FILE_DATE TIMESTAMP

这是文本文件中提取的数据。

UPD_DATE|SEND_FILE|SEND_FILE_DATE
20080223 035719|Y|
20080223 035736|Y|
20080223 035748|Y|
20080223 035757|Y|
20080223 035719|Y|
20080223 035736|Y|
20080223 035748|Y|
20080223 035757|Y|
20100216 020537|Y|20100217 120000
20100216 020551|Y|20100217 120000
20100216 020615|Y|20100217 120000
20100216 020626|Y|20100217 120000

请注意,当在 db2 中选择 send_file_date 时,它​​显示 2010-02-17 00:00:00,但在文件 20100217 120000 中

这是Oracle中的目标表

UPD_DATE TIMESTAMP(6) ,
SEND_FILE CHAR(1) ,
SEND_FILE_DATE TIMESTAMP DEFAULT NULL

问题是如果 col:send_file_date 为空,则显示为 0002-11-30。

标签: oracledb2sql-loader

解决方案


我找到了根本原因。我通过 Dbeaver 提取了文本文件,然后使用 sql loader 将数据输入到 oracle 数据库中。我发现每行末尾都有^M。删除这个 ^M 后,我可以将数据插入到 oracle 表中。


推荐阅读