【发布时间】:2018-11-15 10:20:10
【问题描述】:
我正在使用 SQL*Loader 将 CSV 文件数据加载到名为 EMPLOYEE 的表中。
我的 CSV 文件数据用逗号 (,) 分隔:
EMPID,EMPNAME,SALARY,GRADE
123,Rams,1000,A1
124,Sand,"2,000",A2
125,Bhas,"3,00,000",A3
我的控制文件是:
LOAD DATA
Insert INTO TABLE EMPLOYEE
Fields terminated by "," Optionally enclosed by '"' TRAILING NULLCOLS
(
EMPID,
EMPNAME,
SALARY,
GRADE
)
当我使用上述控制文件加载数据时,第一条记录加载正常,从第二条记录开始出现问题,因为薪水字段中有逗号(因为有逗号,所以薪水在多列中加载)。
在我的数据工资字段中,我们得到了双引号,尽管它有一个逗号(,)。 SQL*Loader 应将双引号之间的值视为单个字段,并且薪水也应正确加载。
请建议进行更改以正确加载数据。
【问题讨论】:
-
您的控制文件正常并且正确处理字段(但如果您的数据文件具有该标题行,则可能需要
skip)。您在日志文件中得到的实际错误是什么?唯一明显的是,您将工资中的逗号视为组分隔符,最后一行中的组看起来很奇怪;但那些会给出 ORA-01722 而不是忽略双引号。
标签: oracle oracle11g sql-loader