2017-10-12 42 views
0

當我使用SQL Loader將數據從CSV file插入到oracle表中時,它工作正常。Oracle中的SQL加載器

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

不..我認爲這不可能。有沒有不想列入列名的理由? – ShoeLace

回答

0

SQL*Loader你需要指定的列名。如果您仍然堅持忽略控制文件中的列名,那麼我建議您使用SQL來「發現」列的名稱,並動態生成控制文件並通過shell腳本將其包裝,以使其更加自動化。

同時,您可以考慮使用SQL*Loader引擎的外部表,因此您仍然需要在上面爲您的輸入文件執行一些動態創建。但是您可以創建腳本來掃描輸入文件併爲您動態生成CREATE TABLE..ORGANIZATION EXTERNAL命令。然後數據變得可用,就好像它是數據庫中的表一樣。

您也可以使用FILLER部分跳過列,如果這可以幫助您。如果稍後需要跳過的列的值,則可以使用BOUNDFILLER(適用於Oracle 9i及更高版本)。