• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Java: Oracle Datenbank Insert-Befehle

majo

Neues Mitglied
Hallo,

im Zuge meiner Ausbildung bin ich gerade am Java lernen und stehe vor folgendem Problem:

Ich schreibe an einem Programm, was Datenbanken in eine xml-Datei exportiert und diese dann wieder in eine andere Datenbank schreibt (sprich die xml-Datei liest). Mit Microsoft SQL-Datenbanken klappt dass alles wunderbar.

Jetzt arbeite ich an der Kompatibilität zu Oracle Datenbanken. Die Verbindung zur DB erstelle ich per "jdbc:eek:raclethin:<Datenbank>".

Beim lesen der xml-Datei wird nun folgender Befehl zusammengebaut:
Code:
INSERT INTO tabellenname(spalte 1, spalte2) VALUES(inhalt1, inhalt2);
INSERT INTO tabellenname(spalte 1, spalte2) VALUES(inhalt1, inhalt2);
INSERT INTO tabellenname(spalte 1, spalte2) VALUES(inhalt1, inhalt2);
....
COMMIT;

Dabei krieg ich jedoch folgende Fehlermeldung: ORA-00911: Ungültiges Zeichen

Wenn ich die Befehle jedoch über das DBViewer-PlugIn von Eclipse eingebe, funktioniert alles optimal. Fehler in Spalten/Tabellennamen sind ausgeschlossen, habs deshalb im Code mal weggelassen.

Es scheint wohl am Semikolon zu liegen, lasse ich das jedoch weg, sagt er "SQL Befehl nicht vollstänig abgeschlossen" oder so ähnlich.Auch die Trennung der Insert-Befehle mittels eines "/" hat nichts gebracht.

Irgendwelche Lösungsvorschläge?
 
Werbung:
Müsste es nicht

Code:
INSERT INTO tabellenname(spalte 1, spalte2) VALUES([COLOR=red]'[/COLOR]inhalt1[COLOR=red]'[/COLOR], [COLOR=red]'[/COLOR]inhalt2[COLOR=red]'[/COLOR]);

heißen?
 
Werbung:
Okay, ich habs gelöst, in dem ich vor den Code noch ein "Begin" und danach noch ein "End;" eingefügt habe. Verstehe ich zwar nicht, aber funktioniert :)
 
Die Daten werden wohl per Transaktion übermittelt, dann muss mit BEGIN gestartet werden. Über Commit werden die Transaktionen (inserts) ausgeführt, mit einem ROLLBACK könntest du alles rückgängig machen.

Zum Verständnis such nach TRANSAKTION oder ROLLBACK

Ums zu automatisieren sollte ein

START TRANSACTION;

am Anfang auch funktionieren
 
Zurück
Oben