NullPointerException lors d'un resultset.next()
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:
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:
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
:?
Merci. Résolu par nouveau statement.
Merci pour vos réponses.
J'ai pu passer via un deuxième statement ( stmt2 ) dans les imbrications.
Je vais tenir compte néanmoins de vos conseils pour bâtir plus simplement et plus proprement.
Theophanie