Ich möchte die Anzahl der Zeilen aller Tabellen einer Datenbank ausgeben. Dafür habe ich folgenden Code:
Aber so wird dies nur für den ersten Tabellennamen ausgeführt. Führe ich nur das erste SELECT (Zeile 1) aus, erhalte ich alle Tabellennamen. Führe ich aber in der Schleife die zweite Abfrage (Zeile 4) durch, so wird dann die Schleife beendet (ich erhalte nur die Anzahl für die erste Tabelle). Es hat also den Anschein, als würden die ersten Resultate durch das zweite SELECT verloren gehen.
Woran liegt das, wie muss ich es richtig machen?
Code:
ResultSet tTmpResult = tState.executeQuery("SELECT table_name FROM user_tables");
while(tTmpResult.next()) {
System.out.print(tTmpResult.getString("table_name") + ": ");
ResultSet tResult = tState.executeQuery("SELECT COUNT(*) FROM " + tTmpResult.getString("table_name"));
if(tResult.next()) System.out.println(tResult.getString("count(*)"));
}
Aber so wird dies nur für den ersten Tabellennamen ausgeführt. Führe ich nur das erste SELECT (Zeile 1) aus, erhalte ich alle Tabellennamen. Führe ich aber in der Schleife die zweite Abfrage (Zeile 4) durch, so wird dann die Schleife beendet (ich erhalte nur die Anzahl für die erste Tabelle). Es hat also den Anschein, als würden die ersten Resultate durch das zweite SELECT verloren gehen.
Woran liegt das, wie muss ich es richtig machen?