Bonjour,
j'utilise la version Java 1.8.0_221 et j'utilise Talend Open Studio for ESB.
j'ai une Vue sur laquelle je souhaite faire un SELECT * dessus (tout simple pas de condition). Je dois le faire de sorte que si on change de Vue je récupère les données, même si elles n'ont pas la même structure (Nombre de colonne, Nom de colonne).
J'ai fait ceci :
J'ai 39 colonnes dans ma vue de test, 897 lignes de données et certaines colonnes sont vides mais je veux quand même récupérer le champs (avec un NULL ou un champs vide "").
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 int i = 0; Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@server:port:base", "user", "password"); if (conn != null) { System.out.println("Connected to the database!"); } else { System.out.println("Failed to make connection!"); } Statement stmt = conn.createStatement(); ResultSet rs; rs = stmt.executeQuery("SELECT * FROM maVue"); for (int j =0; j<39;){ while ( rs.next() ){ String data = rs.getString(j); System.out.println("Data : "+data); i++; System.out.println("NB :" +i); } j++; } conn.close();
Je rencontre une erreur pour cette ligne : String data = rs.getString(j); ERREUR : java.sql.SQLException: Index de colonne non valide.
Ne connaissant pas à l'avance le nombre de colonne j'utilise une boucle for pour passer sur toutes les colonnes, cependant mon Int j n'est pas accepté dans le getString().
Merci pour toute aide que vous me proposerez !
EDIT : Je souhaite pouvoir enregistrer le résultat (c'est à dire l'ensemble des données de ma vue) dans un arrayList.
Partager