【问题标题】:Read data from CSV file(seperated by comma(,)) data using SQL loader when there is a comma(,) in data当数据中有逗号(,)时,使用 SQL 加载器从 CSV 文件(用逗号(,)分隔)数据中读取数据
【发布时间】: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


【解决方案1】:

一个示例表:

SQL> create table test
  2    (empid   number,
  3     empname varchar2(20),
  4     salary  varchar2(20),
  5     grade   varchar2(2));

Table created.

SQL>

控制文件:

load data 
infile *
replace
into table test
fields terminated by ',' optionally enclosed by '"' trailing nullcols
( 
  empid,
  empname,
  salary,
  grade
)

begindata
123,Rams,1000,A1
124,Sand,"2,000",A2
125,Bhas,"3,00,000",A3

加载会话:

SQL> $sqlldr scott/tiger@xe control=test03.ctl log=test03.log

SQL*Loader: Release 11.2.0.2.0 - Production on ╚et Stu 15 22:27:27 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit point reached - logical record count 2
Commit point reached - logical record count 3

SQL>

结果:

SQL> select * From test;

     EMPID EMPNAME              SALARY               GR
---------- -------------------- -------------------- --
       123 Rams                 1000                 A1
       124 Sand                 2,000                A2
       125 Bhas                 3,00,000             A3

SQL>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多