2017-07-24 2 views
-1

J'essaie de lire les curseurs ref, qui ne renvoie qu'une seule colonne, une liste de données de chaîne.Lire un curseur de référence qui renvoie une colonne de valeurs de chaîne

Comment puis-je le faire java? Dois-je parcourir chaque ensemble de résultats ou y a-t-il un moyen d'obtenir la colonne entière en une fois? J'ai 5 ref curseur de la procédure.

rs1= (ResultSet) callableStatement.getObject(1); 
rs2= (ResultSet) callableStatement.getObject(2); 
rs3= (ResultSet) callableStatement.getObject(3); 


while(rs1.next()){ 
     list1.add(rs1.getString(1)); 
    } 

while(rs2.next()){ 
     list2.add(rs2.getString(1)); 
    } 

while(rs3.next()){ 
     list3.add(rs3.getString(1)); 
    } 
+0

Vous devriez essayer d'ajouter un code pertinent que vous avez essayé jusqu'à présent, afin que nous puissions aider. – DCON

+0

Il y a une option pour éditer votre question - vous devriez ajouter n'importe quel code à votre question plutôt que dans un commentaire. – DCON

Répondre

0

mai cela peut aider:

 ResultSet result=null ; 
     PreparedStatement pstmt = null; 
     ArrayList yourlist = new ArrayList(); 
     try 
     { 
      String queryString = "select yourfield from ...."; 
      result = pstmt.executeQuery(); 

      while(result.next()) 
      { 
       yourlist.add(result.getInt("yourfield")); //if you are returning varchar so use getString 

      } 

     }  
     catch (SQLException e){ 
      System.out.println("Exception: " + e.toString()); 
        } 

     finally 
     { 
      if(result!=null) 
       result.close(); 
      if(pstmt!=null) 
       pstmt.close(); 
     } 
+0

un petit contexte à votre code serait utile ... –

+0

la procédure retourne trois ref_cursor. Chacun ayant seulement une liste de chaînes. est-il une autre façon d'optimiser le code –