Bonjour à tous.
Je souhaiterais avoir votre avis.
J'ai consulté le forum JDBC - après de nombreuses recherches infructueuses de mon côté - mais sans succès.
Je tombe en erreur "NullPointerException", sous Eclipse, sur la ligne du next() de mon resultset.
Avant d'afficher le code, une question :
1) Suis-je obligé de fermer les resultset par un close() ? A priori non.
2) Puis-je imbriquer plusieurs resultset différents dans leurs boucles while
respectives sans souci ?
But du code :
Afficher la taille de la BDD Oracle en fonction de la version Oracle sachant que nous avons des bases en 8i, 9i et 10g :
Mon code à présent :
Résultat sous Eclipse:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 ResultSet rset9 = stmt.executeQuery ("SELECT count(*) from dba_temp_files"); while (rset9.next()) { nb_temp_files=Integer.parseInt(rset9.getString (1)); if (nb_temp_files == 0) { ResultSet rset9b = stmt.executeQuery ("SELECT SUM(bytes/1024/1024/1024) from dba_data_files"); while (rset9b.next ()) { System.out.println ("\nTaille globale de la base de données ( DATA + TEMP ) : "+df1.format(Float.parseFloat(rset9b.getString (1)))+" Go"); Tab_RESULT[boucle][2] = df1.format(Float.parseFloat(rset9b.getString (1))); } rset9b.close(); } else { ResultSet rset9c = stmt.executeQuery ("select a+b from ( SELECT SUM(bytes/1024/1024/1024) a from dba_data_files ), ( SELECT SUM(bytes/1024/1024/1024) b from dba_temp_files)"); while (rset9c.next ()) { System.out.println ("rset9c"); System.out.println ("\nTaille globale de la base de données ( DATA + TEMP ) : "+df1.format(Float.parseFloat(rset9c.getString (1)))+" Go"); Tab_RESULT[boucle][2] = df1.format(Float.parseFloat(rset9c.getString (1))); System.out.println ("fin rset9c"); } System.out.println ("close rset9c"); rset9c.close(); } System.out.println ("fin if"); } System.out.println ("close rset9"); rset9.close();
Ligne 381 ==> while (rset9.next())
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 rset9c Taille globale de la base de données ( DATA + TEMP ) : 32,28 Go fin rset9c close rset9c fin if java.lang.NullPointerException at oracle.jdbc.driver.ScrollableResultSet.cacheRowAt(ScrollableResultSet.java:2086) at oracle.jdbc.driver.ScrollableResultSet.isValidRow(ScrollableResultSet.java:2060) at oracle.jdbc.driver.ScrollableResultSet.next(ScrollableResultSet.java:347) at JMA1.JMA1.main(JMA1.java:381) Exception in thread "main"
Merci pour votre aide.
Theophanie
Partager