我创建了一个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
)
提前致谢。 :)
答案 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
标签的范围之外,所以从这里开始,你就是自己的。