0

我创建了一个 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
)

提前致谢。:)

4

1 回答 1

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标签的范围,所以从这里开始你就靠你自己了。

于 2014-07-03T07:27:03.210 回答