oracle - 从保存为 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。
解决方案
我找到了根本原因。我通过 Dbeaver 提取了文本文件,然后使用 sql loader 将数据输入到 oracle 数据库中。我发现每行末尾都有^M。删除这个 ^M 后,我可以将数据插入到 oracle 表中。
推荐阅读
- android - 删除片段后如何清除焦点?
- python - 有效地生成所有可能的 4 人团队组合,其中包含 130 个字符中的特定字符并计算某些值
- junit - 使用 powermock 访问 SuperClass 方法调用时出现 NullPointerException
- dart - 仅在互联网连接可用时运行 Flutter App
- python - 无法使用 crontab 安排 python 脚本
- python - 在 __init__() 之外声明的实例变量在 python 中有什么不同吗?
- python - 如何使 ttk 进度条饱和而不是翻转?
- javascript - 获取有关按钮 video.js 上的下一个视频的信息
- android - Android 是 MediaStore.Images.Media 中项目的唯一内容 ID
- bash - 如何结合 ifconfig 和 openssl 更改 MAC 地址