SQLException: ORA-01008: toutes les variables ne sont pas liées - erreur SQL utilisant java pour interroger la base de données JDBC
Statement stmt = con.createStatement();
String pubBooks = "select title_name " +
"from publisher, title " +
"where pub_name = ? " +
"and publisher.pub_no = title.pub_no " +
"order by title_name";
ResultSet rS = stmt.executeQuery(pubBooks);
stmt.close();
String pubss = "Irwin";
PreparedStatement pStmt =
con.prepareStatement(pubBooks);
pStmt.setString(1, pubss);
pStmt.executeUpdate();
Hé, j'essaie d'utiliser JDBC pour interroger ma base de données sur la liste des titres de livres produits par cet éditeur, mais je rencontre l'erreur java.SQL.SQLException: ORA-01008: toutes les variables ne sont pas liées. J'ai essayé tout ce à quoi je peux penser, mais je ne sais tout simplement pas quoi faire à ce stade.
1
Author: user2793442, 2014-03-29
2 answers
Vous étiez proche d'essayer PreparedStatement
, sauf que vous venez d'appeler la mauvaise méthode "execute". Utilisez le executeQuery()
méthode pour retourner votre ResultSet
.
PreparedStatement pStmt =
con.prepareStatement(pubBooks);
pStmt.setString(1, pubss);
ResultSet rS = pStmt.executeQuery();
3
Author: rgettman, 2014-03-29 00:22:55
L'instruction
Ne peut pas être utilisée lors de la fourniture de paramètres à la requête, utilisez PreparedStatement. Vous avez peut-être réviser votre code comme ci-dessous:
String pubBooks = "select title_name " +
"from publisher, title " +
"where pub_name = ? " +
"and publisher.pub_no = title.pub_no " +
"order by title_name";
String pubss = "Irwin";
PreparedStatement pStmt = con.prepareStatement(pubBooks);
pStmt.setString(1, pubss);
ResultSet rS = pStmt.executeQuery();
//TODO: code to use resultset rS
rS.close();
pstmt.close();
1
Author: Aswani_Chitta, 2014-03-29 00:38:24