通过控制文件创建.csv文件
我必须通过sql加载器控制文件引用创建一些csv文件。我编写了以下代码:通过控制文件创建.csv文件,csv,sql-loader,Csv,Sql Loader,我必须通过sql加载器控制文件引用创建一些csv文件。我编写了以下代码: LOAD DATA INFILE '$ROOT_FOLDER/xxx/xxx/xxx/example.csv' "str '\n'" discardfile '$ROOT_FOLDER/xxx/xxx/xxx/example.dsc' Append INTO TABLE TABLE1 when (9) = ',' FIELDS TERMINATED BY ',' ( Field1
LOAD DATA
INFILE '$ROOT_FOLDER/xxx/xxx/xxx/example.csv' "str '\n'"
discardfile '$ROOT_FOLDER/xxx/xxx/xxx/example.dsc'
Append
INTO TABLE TABLE1
when (9) = ','
FIELDS TERMINATED BY ','
(
Field1 CHAR "to_date(:Field1,'YYYYMMDD')"
,Field2 CHAR
,Field3 FILLER char
,Field4 FILLER char
,Field5 CHAR
)
当我运行代码时,创建了三个csv文件,其中两个正确,最后一个不正确
这是一个正确的csv示例:
INT_PROCESS,18.10.2019 05:35:02,18.10.2019 05:35:02,9
Date,Instrument ID,Instrument ID Type,Exchange Code,Close
20191017,XXXX=,F1,F2, -.49900
,GBP3MFSR=,F1,F2,
20191017,AAAA=,F1,F2,2.00000
20191016,BBBB=,F1,F2,1.90000
20191017,CCCC=,F1,F2, -.44800
20191017,DDDD=,F1,F2, -.41000
20191016,EEEE=,F1,F2,.71090
,FFFF=,F1,F2,
,GGGG=,F1,F2,
这就是我所说的错误:
Date,Instrument ID,Instrument ID Type,Exchange Code,Close
20191016,XXXX=,F1,F3, -.551
20191016,YYYY=,F1,F2, -.466
如何修复代码,使三个csv具有相同的结构?理想情况下,您不需要任何文件,只需要创建.log文件。有关错误的详细信息,请参见.log文件,但sqlldr会尝试将INFLE子句中的数据加载到指定的表中。输出将是.log文件、导致错误的记录的.bad文件和包含不符合条件条件条件的记录的丢弃文件。您的目标应该是在不创建.bad或.dsc文件的情况下加载 另外,我认为您的Field1条目是错误的,因为您通常不会在CHAR列中插入日期数据类型 在继续之前,您可能需要阅读以下内容: