Wie importiert man eine x.csv Datei via PL SQL nach Oracle?

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 exportieren

Von 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ühren

Um 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

dynamische Intranetseite mit HTML(CSS) und PHP erstellen, mit mehreren Seiten die durch Blättern angezeigt werden und in einer SQL-Datenbank gespeichert sind?

Hallo,

ich bin gerade dabei eine Intranetseite zu erstellen. Hierbei müssen die dynamischen Inhalte in einer SQL-Datenbank abgespeichert und nach und nach automatisch angezeigt werden!

wie muss ich das anstellen, dass ich die SQL-Datenbank mit einer HTML-Seite verknüpfen kann?

wie bekomme ich die "Blätterfunktion" hin, damit die dynamischen in der SQL-Datenbank abgespeicherten Seiten nach und nach angezeigt werden?

Zusätzlich muss eine einfach Benutzerverwaltung mit rein (Anlegen/Löschen), wie stell ich das am besten an? PHP hash()-Funktion mit sha256 Algorithmus.. was ist das und wie wende ich das an?

dazu kommt dann noch eine Benutzer und Passwort abfrage, um sich anzumelden, damit man die Inhalte der Seite abändern kann!? wie ist das zu realisieren..

Eine verständliche und ausführliche Antwort würde mich schon sehr weiter bringen.. vielen Dank im Voraus!

...zur Frage

MySQL syntax error - aber wo?

Hallo zusammen.

ich zerbreche mir hier den Kopf und finde einfach keine Lösung. Google und PHP-Buch können mir beide nicht helfen.

das ist der Code:

*anderer code* [...]

if($stmt = $mysqli->prepare("INSERT INTO SF_neues (pic_url,title,dateofevent,text,by,date) VALUES (?,?,?,?,?,?)")){
    $pic_url=$DateiNameNeu;
    $title=$_GET['title'];
    $dateofevent=$_GET['date'];
    $text=$_GET['text'];
    $by=$_SESSION['id'];
        $timestamp = time();
        $datum = date("d.m.Y-H:i",$timestamp);
    $date=$datum;
    $stmt->bind_param("sssis",$title,$dateofevent,$text,$by,$date);
    $insert="INSERT INTO SF_neues (title,dateofevent,text,by,date) VALUES ($pic_url,$title,$dateofevent,$text,$by,$date)";
}
else{
        echo $mysqli->error;
    }

*anderer code* [...]

und der Fehler lautet:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by,date) VALUES (?,?,?,?,?,?)' at line 1

Ich freue mich SO sehr auf eine Antwort.

...zur Frage

Was möchtest Du wissen?