我应该如何编写用于使用 sqlldr 命令将文本文件数据加载到 Mysql 表中的控制文件?

问题描述

我必须将文本文件中的数据加载到表格中。我在文本文件中的数据由 ',' 分隔,每个项目都用双引号(即 "")表示。

例如文本文件中的数据如下:

"1009","John","NY","USA"
"1010","Ron","AZ","USA"

我应该如何编写控制文件,以便在将数据加载到表中时不包含双引号(即 "")。

解决方法

假设表结构如下:

create table someTable(
    colA number,colB varchar2(100),colC varchar2(100),colD varchar2(100)
)

您可以将 SQLLoader 与控制文件一起使用,例如:

OPTIONS(skip=0) 
load data
infile "data.txt"
append into TABLE someTable
fields
terminated by ','
enclosed by '"'
(
  colA "to_number(:colA)",/* here you can use a format for numbers,if any */
  colB,colC,colD
)