当我使用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)
。
这是否可能,如果是,任何人都可以告诉我如何......
答案 0 :(得分:0)
在SQL*Loader
中,您需要指定列名称。如果您仍然坚持忽略控制文件中的列名,那么我建议您使用SQL“发现”列的名称并动态生成控制文件并通过shell脚本将其包装以使其更加自动化。
同时,您可以考虑使用SQL*Loader
引擎的外部表,因此您仍需要在此处为输入文件执行一些动态创建,如上所述。但您可以创建一个脚本来扫描输入文件并为您动态生成CREATE TABLE..ORGANIZATION EXTERNAL
命令。然后,数据就像数据库中的表一样可用。
如果使用FILLER
,那么您也可以部分跳过列。如果稍后将再次要求跳过列的值,则可以使用BOUNDFILLER
(适用于Oracle 9i及更高版本)。