如何使用sqlldr将单个文件(.csv)列映射到多个表列使用sqlldr

我有一个文件(.csv)包含列A1,A2,A3,并且表具有列T1,T2,T3,T4,T5。如何使用sqlldr将单个文件(.csv)列映射到多个表列使用sqlldr

我要地图或插入从A2列数据以T2,T3,T4.I是能够插入到 T2和T3使用FILLER desc_skip位置(1)中的控制文件(.CTL),但不是在T4。 你能帮我吗如何将单个文件列值插入到多于 表中的两列使用sqlldr。

请在下面找到我正在使用的控制文件。

LOAD DATA 

INTO TABLE EMP

FIELDS TERMINATED BY ','

OPTIONALLY ENCLOSED BY '"'

TRAILING NULLCOLS

(

"T1" INTEGER ,

"T2" CHAR,

desc_skip FILLER POSITION(1),

"T3" CHAR,

"T4" CHAR,

"T5" INTEGER

)

在此先感谢。

回答:

您应该使用类似的东西来

... 

T2 char,

T3 expression ":T2",

T4 expression ":T2",

...

附:我无法想象什么可以'不工作'。我的例子:

数据库:

SQL> create table t$loader (t1 varchar2(10), t2 varchar2(10), t3 varchar2(10), t4 varchar2(10), t5 varchar2(10)); 

Table created

CSV文件:

echo 1,2,3 > csv.csv 

echo 4,5,6 >> csv.csv

echo 7,8,9 >> csv.csv

控制文件:

load data 

infile 'csv.csv'

into table t$loader

fields terminated by ','

(

t1 char,

t2 char,

t3 expression ":t2",

t4 expression ":t2",

t5 char

)

运行:

sqlldr userid=user/[email protected] control=csv.ctl 

结果:

SQL> select * from t$loader; 

T1 T2 T3 T4 T5

---------- ---------- ---------- ---------- ----------

1 2 2 2 3

4 5 5 5 6

7 8 8 8 9

是不是你要求的?

以上是 如何使用sqlldr将单个文件(.csv)列映射到多个表列使用sqlldr 的全部内容, 来源链接: utcz.com/qa/261500.html

回到顶部