将特定单元格值设置为列(CTL)

时间:2014-06-25 09:27:13

标签: oracle csv sql-loader ctl

我创建了一个CTL文件,用于读取CSV文件中的数据。它将CSV中的数据加载到数据库中的表中。我只想询问是否可以在使用sqlloader加载数据时将表列设置为CSV文件中的特定单元格?

例如(CTL脚本):

INTO TABLE "DB"."TABLENAME"
TRUNCATE
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' AND '"'
TRAILING NULLCOLS
(
**COL1 (:A1),** - is it possible to set this column to a specific cell?
COL2,
COL3,
COL4,
LOAD_DATE SYSDATE
)

提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

使用整数列扩展您的表格TABLENAME,我们将其命名为ROW#。然后修改您的控制文件,如下所示......

LOAD
INTO TABLE "DB"."TABLENAME"
TRUNCATE
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' AND '"'
TRAILING NULLCOLS
(
    COL1,
    COL2,
    COL3,
    COL4,
    LOAD_DATE SYSDATE,
    ROW# SEQUENCE
)

然后在TABLENAME (ROW#)上创建主键。

然后在TABLENAME上创建一个视图,其中包含一个新列,其中包含您需要的特定行的特定单元格值。对于初学者来说,这是一个" SQL"而且,在sql-loader标签的范围之外,所以从这里开始,你就是自己的。