【发布时间】:2018-05-19 20:08:22
【问题描述】:
我有一个 .csv 文件,其中某些列中的数据有一个或多个 \r\n。我需要在没有这些 \r\n 的情况下将它们加载到 oracle 中,但 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), ' '),
在控制文件中,但这些解决方案不起作用。那么,我该如何处理呢?
编辑:这是我的控制文件的标题:
OPTIONS (DIRECT=TRUE)
LOAD DATA
INFILE 'E:test.csv'
INTO TABLE TEMP
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
...
【问题讨论】:
-
谢谢,但我认为问题有所不同。
-
在处理开始前使用
dos2unix删除回车。 -
@KaushikNayak 记录也用 \r\n 分割。如果我删除它会发生什么? (字段之间和记录末尾的\r\n都被删除)
-
@DAVID_ROA,我发布的链接还描述了如何定义换行符,因此它IS与您的问题相关(或者我认为)。
标签: sql oracle sql-loader