2017-10-12 3 views
0

Wie ich Daten aus einer CSV file in eine Oracle-Tabelle unter Verwendung SQL Loader einfügen und es funktioniert gut.SQL Loader in 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) 

obige Einstellungen verwendet werden, um das zu tun, aber ich will nicht ex. (ID,Name,Category) einen des Spaltennamen angeben.

Ist das möglich ist oder nicht, wenn ja kann mir jemand sagen, wie ..

+0

Nein. Ich glaube nicht, dass das möglich ist. Gibt es einen Grund dafür, die Spaltennamen nicht einfügen zu wollen? – ShoeLace

Antwort

0

In SQL*Loader Sie die Spaltennamen angeben müssen. Wenn Sie weiterhin die Spaltennamen in der Steuerdatei ignorieren, würde ich Ihnen vorschlagen, SQL zu verwenden, um den Namen der Spalten zu "entdecken" und die Steuerdatei dynamisch zu generieren und sie über das Shell-Skript zu umschließen, um sie automatisierter zu machen.

In der Zwischenzeit können Sie externe Tabellen in Betracht ziehen, die die SQL*Loader-Engine verwenden. Daher müssen Sie hier noch eine dynamische Erstellung für Ihre Eingabedatei durchführen, wie oben vorgeschlagen. Sie können jedoch ein Skript erstellen, um die Eingabedatei zu scannen und den Befehl CREATE TABLE..ORGANIZATION EXTERNAL dynamisch für Sie zu generieren. Dann werden die Daten verfügbar, als wäre es eine Tabelle in Ihrer Datenbank.

Sie können die Spalten auch teilweise überspringen, wenn Ihnen das helfen würde, indem Sie FILLER verwenden. BOUNDFILLER (verfügbar mit Oracle 9i und höher) kann verwendet werden, wenn der Wert der übersprungenen Spalte später erneut benötigt wird.