如何使用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
