Mehrer Abfragen ";" Trennzeichen

socke999

Erfahrenes Mitglied
Hallo zusammen,
ich habe mal ne allgemeine Frage: Und zwar bei einer Query die mehrer SQL-Anweisungen beinhaltet und durch ";" getrennt sind z.B.
Code:
Insert Into Test (a) values (1);
Insert Into Test (a) values (2);

ich hab ein kleine Java Anwendung geschrieben die mir SQL Anweisungen ausführt usw.
http://www.tutorials.de/forum/java/328274-java-sql-zwischen-sql-statements.html.

Nun zu meiner Frage:
kennt die Datenbank an sich schon das Trennzeichen ";" oder muss ich das selber in meinem Programm erst Trennen und dann jeden befehl einzeln an die Datenbank schreiben?

Übrigens verwende ich DB2, allerdings ist das ja egal, ist ne allgemeine Frage.
 
Moin socke999,

das Semikolon ist bei allen SQL-Datenbanken der voreingestellte "SQL-Delimiter", also das Statement-Ende-Kennzeichen.
Bedeutet: Du kannst mehrere Statements nacheinander "en bloc" abschicken, wenn jeweils ein Semikolon dazwischen ist.

Alle 10000 Statements sollte dann allerdings auch auch mal ein "Commit;" dazwischen sein.

[ Rest ist eher Off-topic]
Nachteil (musst Du abwägen): wenn ein Fehler bei einem der Statements auftritt (z.B. beim INSERT #237 von insgesamt 5000, ist die Ursachenforschung etwas schwierig, da bei jedem Statement SQLCODE und SQLERROR neu gesetzt werden und Du am Ende nur die Werte des allerletzten Statements erhalten wirst.

Mach mehrere INSERTs (wenn möglich) besser in einer Schleife mit Einzel-Insert-Erfolgsprüfung ODER mit einem Mehrfach-Insert mit einem INSERT INTO multiple-row-values / INSERT INTO...SELECT FROM ..
[/end-of-maybe-OT].

Grüße
Biber
 
Zurück