Oracle中的SQL Loader

时间:2017-10-12 21:17:24

标签: oracle sql-loader

当我使用CSV file将数据从SQL Loader插入到oracle表时,它正常工作。

LOAD DATA
INFILE DataOut.txt
BADFILE dataFile.bad
APPEND INTO TABLE ASP_Net_C_SHARP_Articles
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
(ID,Name,Category)

以上设置用于执行此操作,但我不想指定任何列名ex. (ID,Name,Category)

这是否可能,如果是,任何人都可以告诉我如何......

1 个答案:

答案 0 :(得分:0)

SQL*Loader中,您需要指定列名称。如果您仍然坚持忽略控制文件中的列名,那么我建议您使用SQL“发现”列的名称并动态生成控制文件并通过shell脚本将其包装以使其更加自动化。

同时,您可以考虑使用SQL*Loader引擎的外部表,因此您仍需要在此处为​​输入文件执行一些动态创建,如上所述。但您可以创建一个脚本来扫描输入文件并为您动态生成CREATE TABLE..ORGANIZATION EXTERNAL命令。然后,数据就像数据库中的表一样可用。

如果使用FILLER,那么您也可以部分跳过列。如果稍后将再次要求跳过列的值,则可以使用BOUNDFILLER(适用于Oracle 9i及更高版本)。