Sql 加载程序:将嵌入 \r\n 的 .CSV 文件加载到 oracle
Sql loader: Loading .CSV files with embedded \r\n into oracle
我有一个 .csv 文件,其中某些列中的数据有一个或多个 \r\n。我需要在没有这些的情况下将它们加载到 oracle 中 \r\n 但是 SQLLDR 给出了一个错误。
以下是记录示例:
R1:
"A", "B", "
CDE
FGH" , ...
R2:
"A", "B", "
CDE
FGH" , ...
R3:
"A", "B", "C
DEF
GH" , ...
R4:
"A", "B", "C
DE" , ...
我用过
continueif last != '"' ,
“STR '\r\n'”和
替换 (:ColumnName, chr(13) || chr(10), ' '),
在控制文件中,但这些解决方案均无效。那么,我该如何处理?
编辑: 这是我的控制文件的 header:
OPTIONS (DIRECT=TRUE)
LOAD DATA
INFILE 'E:test.csv'
INTO TABLE TEMP
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
...
我找到了。
我应该使用:CONTINUEIF NEXT PRESERVE(1) != ' " ',因为记录以 ' " ' 开头,只要下一行与 ' " ' 相对,它们都算作一条记录。
我有一个 .csv 文件,其中某些列中的数据有一个或多个 \r\n。我需要在没有这些的情况下将它们加载到 oracle 中 \r\n 但是 SQLLDR 给出了一个错误。
以下是记录示例:
R1:
"A", "B", "
CDE
FGH" , ...
R2:
"A", "B", "
CDE
FGH" , ...
R3:
"A", "B", "C
DEF
GH" , ...
R4:
"A", "B", "C
DE" , ...
我用过
continueif last != '"' ,
“STR '\r\n'”和
替换 (:ColumnName, chr(13) || chr(10), ' '),
在控制文件中,但这些解决方案均无效。那么,我该如何处理?
编辑: 这是我的控制文件的 header:
OPTIONS (DIRECT=TRUE)
LOAD DATA
INFILE 'E:test.csv'
INTO TABLE TEMP
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
...
我找到了。 我应该使用:CONTINUEIF NEXT PRESERVE(1) != ' " ',因为记录以 ' " ' 开头,只要下一行与 ' " ' 相对,它们都算作一条记录。