我正在尝试使用sqlldr
. 例如,我有一个日期:
"2020-01-05-16.32.02.070000"
在我的 csv 导入文件中。
在我的 sqlldr 控制文件中,我尝试了: LASTMODIFIED DATE "YYYY-MM-DD-HH24.MI.SS.FF6",
但是 sqlldr 抛出错误: ORA-01821: date format not recognized
所以我可以将我的格式字符串更改为LASTMODIFIED DATE "YYYY-MM-DD-HH24.MI.SS",
当然如果无法加载,因为:
Record 43: Rejected - Error on table ORA_TIO_OWNER.REPORTER_STATUS, column LASTMODIFIED.
ORA-01830: format picture ends before converting entire input string
我可以从我的数据中排除亚秒级的准确性,然后它就可以很好地导入,但显然这是次优的。我如何才能sqlldr
接受这些数据字符串?
PS。我检查了 SQL Developer 并看到目标表配置为具有相同的小数位数。
用装载机控制文件更新
load data
2 infile 'REPORTER_JOURNAL.csv'
3 into table ORA_TIO_OWNER.REPORTER_JOURNAL
4 fields terminated by "," optionally enclosed by '"'
5 ( CHRONO DATE "YYYY-MM-DD-HH24.MI.SS.FF", SERIAL INTEGER EXTERNAL, SERVERNAME CHAR, SERVERSERIAL INTEGER EXTERNAL, TEXT1 CHAR, TEXT10 CHAR, TEXT11 CHAR, TEXT12 CHAR, TEXT13 CHAR, TEXT14 CHAR, TEXT15 CHAR, TEXT16 CHAR, TEXT2 CHAR, TEXT3 CHAR, TEXT4 CHAR, TEXT5 CHAR, TEXT6 CHAR, TEXT7 CHAR, TEXT8 CHAR, TEXT9 CHAR, USERID INTEGER EXTERNAL )
那是不起作用的,ORA-01821: date format not recognized
如果我破解.FF
它,它将加载日期的缩减版本。
PS不要担心不同的表名。我正在将一大堆数据从 DB2 迁移到 Oracle,并且有很多表,但问题都是一样的