我能够正确地将相同的逗号分隔的csv文件的数据加载到窗口oracle数据库中但是在linux环境中,插入的记录具有奇怪的行为。例如,正在插入的数据具有类似\ n的行为。我选择了记录并将其粘贴,注意记录是这样的
"data
"
我使用的控制文件如下
Load DATA
REPLACE INTO TABLE TABLE_NM
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
请告知我可以做些什么来使这个场景正确。提前谢谢你
答案 0 :(得分:1)
它是经典的问题,其中* nix系统行以换行符结束,但在Windows行上以回车/换行结束。由于您的数据以回车/换行结束,因此在Windows上可以正常读取,但Linux会加载回车。
您可以预处理数据文件并使用dos2unix
等实用程序替换行(记录)终止字符,也可以通过将STR
子句添加到INFILE
选项来更改控制文件将记录终止字符设置为回车符:
INFILE "test.dat" "STR x'0D'"
我会选择通过dos2unix
运行数据,以使控制文件更通用,而不是特定于数据文件名。
答案 1 :(得分:0)
经过调查,请注意问题的根本原因是源文件不是从Linux基础环境生成的。因此,在手动将文件转换为Linux版本后,Feed文件可以毫无问题地加载到DB中。