ResultSet#next Ungültige Reihenfolge (DB2)

Status
Nicht offen für weitere Antworten.

The_S

Top Contributor
Hallo zusammen,

Ich möchte bestimmte Daten (die über mehrere Tabellen verteilt sind) in die selbe Tabelle kopieren - nur mit einer neuen ID. Grundsätzlich erledige ich das so (vereinfachter SQL):

Code:
INSERT INTO tbl1 (spalte1, spalte2, spalte3) (SELECT spalte1, spalte2, 5 FROM tbl1 WHERE spalte3=2 ORDER BY spalte3)

Funktioniert auch soweit, wie es soll - Es werden alle Datensätze, bei denen spalte3 = 2 ist mit einer neuen ID nochmal in die Tabelle geschrieben und der Wert in spalte3 durch "5" ersetzt.

Spalte3 ist nicht eindeutig, es kann also vorkommen, dass in tbl1 mehrere Datensätze existieren, die in der spalte3 auf "2" stehen. Soweit auch kein Problem, funktioniert Reibungslos. Nur jetzt ist noch eine zweite Tabelle mit dieser Tabelle über eine eindeutige ID verknüpft, in welcher natürlich auch noch die entsprechenden Daten kopiert werden müssen. Da ich jetzt zum kopieren die IDs aus der 1. Tabelle benötige, habe ich mir gedacht, ich mache folgendes:

Code:
PreparedStatement ps = con.prepareStatement("SELECT id FROM tbl1 WHERE spalte3=2 ORDER BY id");
ResultSet rs = ps.executeQuery();
ps = con.prepareStatement("SELECT id FROM tbl1 WHERE spalte3=5 ORDER BY id");
ResultSet rs2 = ps.executeQuery();
while (rs.next() && rs2.next()) {
   ps = con.prepareStatement("INSERT INTO tbl2 (spalte1, spalte2, verkn_mit_tbl1 ) (SELECT spalte1, spalte2, " + rs2.getInt("id") + "  FROM tbl2 WHERE verkn_mit_tbl1=" + rs.getInt("id") + ")");
   ps.execute();
}

Der 1. Datensatz wird auch ohne Probleme eingetragen, aber beim 2. Durchlauf (in tbl1 wurden 2 Datensätze kopiert) wird bei rs.next() folgende Exception geworfen:

COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0125E Ungültige Reihenfolge für Funktion. SQLSTATE=HY010

und ich hab kA warum.

Weiß da jemand Rat?

Danke!
 
M

maki

Gast
Hmmm.. kann sein das ich daneben liege, aber werden alte ResultSets nicht geschossen wenn du mit demselben PrepareStatement ein neues erzeugst?

Was passiert, wenn du 2 PreparedStatements verwendest, also eines pro zu erzeugendem ResultSet?
 

The_S

Top Contributor
Sollte eigentlich nicht der Fall sein, hat bis jetzt noch nie Probleme bereitet ;) .

Hab jetzt mal für jedes ResultSet und für den Insert in der Schleife ein eigenes PreparedStatement verwendet => selbes Resultat. Aber danke für deine Hilfe :) .
 

The_S

Top Contributor
Neue Erkenntnis:

Wenn ich das Insert-Statement in der while-Schleife weglasse, dann funktionierts - also zumindest bekomme ich keine Fehlermeldung mehr. Warum ist mir aber nach wie vor ein Rätsel => es spielt keine Rolle ob ich 3 PreparedStatements verwende oder nur eines und ich greife ja auch bei den selects auf eine andere Tabelle zu, wie bei dem Insert ???:L .
 

The_S

Top Contributor
OK, wenn ich die Statements in der while-Schleife alle in eine ArrayList schreibe und erst anschließend in einer zweiten Schleife alle Statements in der ArrayList ausführe, dann funktioniert das ohne Probleme (auch mit nur einem einzelnen PreparedStatement).

Dennoch würde mich "das Warum" interessieren.

Danke!

(unter vorbehalt abhakt)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
T MAX und ResultSet#next Datenbankprogrammierung 10
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
Z ResultSet ist null warum? Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
C PostgreSQL ResultSet.TYPE_SCROLL_SENSITIVE setzen Datenbankprogrammierung 2
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
L Zugriff auf ein Resultset Datenbankprogrammierung 7
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
D Resultset schließen ?? Datenbankprogrammierung 5
T Oracle Resultset to Array sehr langsam. Datenbankprogrammierung 8
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
L ResultSet Datenbankprogrammierung 1
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
D MySQL ResultSet als Stream weiter geben Datenbankprogrammierung 9
M ResultSet Cachen Datenbankprogrammierung 3
R ResultSet mit "Untertabellen" Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R Resultset.last() Problem Datenbankprogrammierung 12
PaulG Leeres ResultSet initialisieren Datenbankprogrammierung 6
J Frage zu ResultSet Datenbankprogrammierung 3
J SQL ResultSet Previous Datenbankprogrammierung 10
S MySQL ResultSet in ein Array übertragen Datenbankprogrammierung 7
H PostgreSQL Objekte aus ResultSet Datenbankprogrammierung 5
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
O Oracle Resultset greift auf Spaltenüberschriften zu Datenbankprogrammierung 2
Kenan89 Wieso klappt das ResultSet nicht? Datenbankprogrammierung 3
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
F Derby/JavaDB Resultset in JTablemodel Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
B SQLite ResultSet is TYPE_FORWARD_ONLY Datenbankprogrammierung 5
T Exception ResultSet Datenbankprogrammierung 7
0 ResultSet in JTable Datenbankprogrammierung 14
S [SQL] ResultSet Datenbankprogrammierung 4
R ResultSet Datenbankprogrammierung 4
I Sonderbehandlung wenn ResultSet leer ist Datenbankprogrammierung 9
I Problem mit ResultSet Datenbankprogrammierung 2
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
B ResultSet wirft komische NullPointerException. Datenbankprogrammierung 3
R Detached ResultSet Datenbankprogrammierung 3
F generelle Vorgehensweise ResultSet Datenbankprogrammierung 5
S ResultSet Datenbankprogrammierung 2
A MySQL ResultSet.updateBytes schlägt fehl Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
A PostgreSQL anfängerfrage: resultset zeilenweise auslesen Datenbankprogrammierung 2
T MySQL ResultSet zurückgeben nachdem Connection geschlossen wurde? Datenbankprogrammierung 3
K Keine ResultSet bei if in StoredProcedure Datenbankprogrammierung 16
D ResultSet gibt nichts aus. Datenbankprogrammierung 3
trash ResultSet Syntax Fehler Datenbankprogrammierung 11
ARadauer JDBC ResultSet schließen? Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
J jdbc ResultSet types Datenbankprogrammierung 5
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
F ResultSet to String[] Datenbankprogrammierung 3
E ResultSet in HashMap Datenbankprogrammierung 8
K Tabelle mit resultset refreshen? Datenbankprogrammierung 4
M Problem mit ResultSet bei SQL Server 2005 Datenbankprogrammierung 6
S ResultSet in ArrayList ablegen Datenbankprogrammierung 17
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
T ResultSet initialisieren Datenbankprogrammierung 2
C kein Resultset Datenbankprogrammierung 2
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
T ResultSet-Inhalt in Arrays schreiben Datenbankprogrammierung 3
S ResultSet variabel auslesen Datenbankprogrammierung 4
D Anzahl der Elemente im ResultSet ermitteln Datenbankprogrammierung 8
A Leeres ResultSet mit H2 unter Vista Datenbankprogrammierung 3
A Warum ist mein ResultSet leer? Datenbankprogrammierung 5
S ResultSet closed Datenbankprogrammierung 2
Z ResultSet mit einer anderen Datenquelle Datenbankprogrammierung 7
O Spaltenname aus Resultset Datenbankprogrammierung 2
thE_29 ResultSet und doppelte Spalten Datenbankprogrammierung 4
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
E ResultSet vergisst Reihe? Datenbankprogrammierung 2
N resultset aus andere klasse übergeben Datenbankprogrammierung 3
F ResultSet refresh moeglich? Datenbankprogrammierung 3
S ResultSet enthält keine Daten Datenbankprogrammierung 2
B Geschlossenes ResultSet Datenbankprogrammierung 6
T ResultSet schließen? Datenbankprogrammierung 6
S Tabelle updaten wenn ResultSet aus JDBC-Quelle Datenbankprogrammierung 2
S ResultSet Datenbankprogrammierung 6
F Filtern innerhalb eines Resultset Datenbankprogrammierung 12
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
@ Like-Klausel; NPE bzw. leeres ResultSet Datenbankprogrammierung 4
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
B No ResultSet was produced Datenbankprogrammierung 2
S ResultSet erweitern ? Datenbankprogrammierung 4
E JDBC, ForwardOnly bei ResultSet nach Uebergabe Datenbankprogrammierung 4
R ResultSet liefert oracle.sql.TIMESTAMP, aber unbrauchbar Datenbankprogrammierung 9
A Probleme mit ResultSet und getString(i) Datenbankprogrammierung 13
RaoulDuke ResultSet - Wie arbeitet sowas intern Datenbankprogrammierung 2
N Probleme mit "nur vorwärts gerichtete ResultSet" Datenbankprogrammierung 7
G Für jede SQL-Abfrage eigenes Statement und ResultSet? Datenbankprogrammierung 3
R ResultSet zu bestimmtem DS navigieren Datenbankprogrammierung 4
S .leeres Resultset abfangen Datenbankprogrammierung 2
B ResultSet ohne Datenbank erstellen Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben