LOAD DATA INFILE mit Oracle

Bitte aktiviere JavaScript!
Hi ihr lieben,

habe da Mal wieder eine Frage xD
Und zwar würde ich gerne Daten in eine CSV laden. Ich habe den Befehl "Load Data INFILE" genutzt aber der funktioniert für Oracle nicht, habe auch schon herausgefunden, dass es hierfir den SQLLoader gibt. Nur weiss ich nicht wie ich es genau in meine Java Datei einbauen soll.

Habe zurzeit

LOAD DATA INFILE /path/to/file REPLACE INTO TABLE....

Das würde ich gerne so umschreiben das es für die Oracle DB funktioniert.

LG und danke :)
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Habe zur Zeit eine Datei test.sql im Java Projekt eingebunden

LOAD DATA LOCAL INFILE 'test.csv' REPLACE INTO TABLE temp_test...
 
Dazu müsstest Du SQL Loader aufrufen, was voraussetzt, dass dieses Tool (inkl. etwaiger zusätzlicher Abhängigkeiten) auf dem Rechner installiert ist, auf dem die Java-Anwendung läuft. Würde ich nicht machen.

Auch die Funktionen, die die DB selbst anbietet, funktionieren, wenn ich mich recht entsinne, nur mit Dateien, die sich auf dem Server befinden. Würde ich nicht machen.

Besser wäre es, das in Java zu haben. Je nachdem, wie Deine CSV aussieht, hast Du das schnell selbst oder unter Zuhilfenahme einer CSV-Bibliothek erledigt und bist dann weitestgehend von der DB unabhängig.
 
Vielen Dank für deine Antwort:)

Was kann ich da für eine Bibliothek nutzen ? Csvloader? Hatte da was gelesen .. oder ist es was anderes ?
 
Ja genau, aber wie kann ich das so umschreiben , dass ich es für eine Oracle DB ausführen kann?
Entweder startest du SQL*Loader und übergibst die entsprechenden Parameter oder du nutzt andere SQL Befehle und schickst dies direkt an Oracle. Aber den Befehl so umschreiben wird nicht gehen.

 
@Dukel vielen Dank für deine Antwort. Dieser Load data INFILE Befehl steht bei mir in einer ctl File. Ich wollte alles in eine .sql Datei packen aber da es mit dem Load data INFILE fur die oracle nicht funktioniert. Geht es nicht.. dh muss ich diese File über einen process builder aüsfuhren ? Oder wie genau ? Habe auch etwas über sqlcl gelesen ginge es auch mit sowas ? Sorry wirklich für solche Fragen
 
Wie gesagt, es gibt mehrere Möglichkeiten. Wenn du das ganze mit dem SQL*Loader machen willst musst du diesen starten (mit Process Builder), bedingt aber, dass der installiert ist.
Wenn du es mit SQL Mitteln machen willst, dann wie in dem Link beschrieben z.B. mit den Temporären Tabellen.
SQLCL ist, wenn ich das richtig gegoggelt habe, ein CLI Tool um SQL Befehle und Scripte an Oracle zu schicken, das geht aber auch mit Java selbst (JDBC) und du bist nicht von dem Tool abhängig.
 
Vielen Dank !

Also habe halt eine .sh Datei in dieser sh datei werden halt 4 Befehle aufgerufen 3 davon sind .sql Dateien und eine .ctl .. ich wollte es halt nicht mehr über einen process builder machen also keine shell Scripte mehr aufrufen , sondern direkt über Java.. die sql Dateien sind ja kein Problem mir diese ctl File
 
Dann musst du das selber implementieren. Entweder die CSV als SQL Datei (in lauter Inserts) umschreiben (z.B. mit Java) oder mit den externen Tabellen.
 
Du meinst das :

LOAD DATA INFILE test.csv
REPLACE INTO TABLE temp_test
FIELDS TERMINATED BY ',' OPTIONALLY BY '"'
TRAILING NULLCOLS (TEST_ID, TEST_NAME)

Habe das in der ctl File.. das umschreiben ??
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben