Wie importiert man eine x.csv Datei via PL SQL nach Oracle?
Guten tag,
Wie der genrelle Code die Form um eine .csv Datei via PL SQL nach Oracle zu importieren
1 Antwort
Der einfachste Weg Daten in eine Oracle Datenbank zu bekommen ist PLAIN-SQL. Haben Sie jedoch viele Daten zu importieren, wird es über normale SQLs lange dauern. Bei der Oracle-Installation ist bereits das Import-Utility sqlldr mit dabei, welches CSV-Dateien einlesen kann. Dieses ist sehr hilfreich, wenn viele Daten beispielsweise nur als Exceldatei vorliegen.
Excel nach CSV exportierenVon Excel aus kann relativ problemlos eine CSV-Datei erzeugt werden. Dabei ist aber darauf zu achten, dass in der CSV-Datei (beispiel.csv) hinter dem letzten Feld auch das Trennzeichen (z.B. Semikolon) seht:
Meier;Max;Hauptstraße;5;01.01.1980;
Schulz;Sascha;Nebenstraße;10;03.03.1970;
Schmidt;;Nebenstraße;14;03.03.1980;
Datenstruktur in Oracle
Die Daten aus der obigen CSV-Datei sollen in folgende Tabelle importiert werden:
CREATE TABLE adressbuch
(name VARCHAR(255),
vorname VARCHAR(255),
strasse VARCHAR(255),
hausnummer NUMBER,
geburtstag DATE);
sqlldr Control Script
Damit die Oracle Importsoftware sqlldr die Daten aus der CSV-Datei in die korrekte Tabelle adressbuch importieren kann benötigt sqlldr ein Control-Script. Dieses legt fest, welcher Wert einer Zeile in welche Tabellenspalte gespeichert werden soll und welches Datenformat die Daten haben. Das ctl-Script (beispiel.ctl) sieht für das obige Beispiel wie folgt aus:
load data
infile 'beispiel.csv'
append into table adressbuch
fields terminated by ';'
(name char ,
vorname char nullif vorname = 'unbekannt',
strasse char,
hausnummer,
geburtstag date "dd.mm.yyyy")
Die Angabe nullif sagt aus, dass wenn kein Vorname gegeben ist, der Wert “unbekannt” in die Spalte geschrieben werden soll.
Import durchführenUm den Import zu starten müssen sich die beispiel.ctl und beispiel.csv im gleichen Verzeichnis befinden. Folgender Kommandozeilenbefehl startet den Import und fügt die Daten aus der CSV-Datei in der Tabelle an:
LinuxServer:/root/ora_import # sqlldr user/pw@ora_sid control=beispiel.ctl
Ein Logfile wird bei Ausführung mit dem Namen beispiel.log erzeugt, welches auf evtl. Fehler hinweist bzw. den Erfolg protokolliert.
Quelle: http://www.christian-klisch.de/csv-in-oracle-importieren.html
Ich nehme an, das sollte dir helfen.
Schöne Grüße