暂无图片
oracle用sqlldr导入数据,怎么在导的时候把时间格式里的横杠去除?
我来答
分享
暂无图片 匿名用户
oracle用sqlldr导入数据,怎么在导的时候把时间格式里的横杠去除?

oracle用sqlldr导入数据,怎么在导的时候把时间格式里的横杠去除?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
DarkAthena
2021-12-17

文件里是 ‘2021-12-17’,但目标字段不是date类型,而是个varchar2,所以你想导入成’20211217’ ?是这个意思么?
直接导入到date类型的字段里去不更好么?

  1. 如果是导入到date类型字段里去的话,在ctl文件里定义一下这个字段的格式,比如
CREATION_DATE DATE 'YYYY-MM-DD',
  1. 如果非得导入到varchar2里去,这个ctl文件里其实可以定义转换函数的,但效率肯定就低了,
CREATION_DATE "replace(:CREATION_DATE,'-')"

实测文件
aaa.txt

2021-12-01|AAA
END

load.ctl

LOAD DATA
CHARACTERSET ZHS16GBK
APPEND
INTO TABLE SQLLDR_TEST
WHEN (1:3) != 'END'
FIELDS TERMINATED BY "|"
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
  A "replace(:A,'-')",
  B
)

导入

sqlldr testuser/testuser@testdb silent=feedback,header control=load.ctl log=log.log data=aaa.txt bad=bad.bad

效果
image.png

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏