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 :
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();
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
 
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"
Ligne 381 ==> while (rset9.next())

Merci pour votre aide.

Theophanie