java.sql.SQLException: ORA-00933: commande SQL n'est pas correctement terminé
Ce que je veux accomplir, c'est d'être capable d'écrire des requêtes SQL et de vérifier les résultats.
Les Instructions SQL aurait variables, comme :
String sql = "Select zoneid from zone where zonename = myZoneName";
Où myZoneName est généré à partir de compter +
Remarque: j'utilise Apache POI pour analyser feuille de calcul Excel.
voici le code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.junit.Test;
public class VerifyDBSingleDomain {
static Logger log = Logger.getLogger(VerifyDBSingleDomain.class.getName());
String url = "jdbc:oracle:thin:@a.b.c.d:1521:mname";
@Test
public void VerifyDBSingleDomainTest() throws SQLException {
Properties props = new Properties();
props.setProperty("user", "user");
props.setProperty("password", "password");
String sql = "Select zoneid from zone where zonename = 99224356787.tv";
//String sql = "Select * from zone";
Connection conn;
//try {
conn = DriverManager.getConnection(url, props);
PreparedStatement preStatement = conn.prepareStatement(sql);
ResultSet result = preStatement.executeQuery();
System.out.println(result);
/*while (result.next()) {
System.out.println(result.toString());
}
} catch (SQLException e) {
e.printStackTrace();
}*/
// }
//}
}
}
et je reçois l'erreur:
java.sql.SQLException: ORA-00933: SQL command not properly ended
- Pas sûr, mais on dirait que vous avez citer votre comparaison
String sql = "Select zoneid from zone where zonename = '99224356787.tv'";
- vous ne savez pas comment vous voyez " pour la zone nom, je l'ai enlevé car il était une faute de frappe dans la question, peut-être.
- Je voulais dire 99224356787.tv n'est pas entourée par des guillemets simples dans votre code SQL des comparaisons sur les varchars sont généralement de la forme
WHERE field = 'myValue'
- l'a, qui fonctionne, Merci
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser des guillemets simples dans votre
WHERE
clause en supposantmyZoneName
est un type de texte:Utilisez la commande suivante pour afficher la
zoneid
en supposant que c'est un type ENTIER:si myZoneName est un type Varchar vous avez à les enrouler autour de guillemets comme ceci
Pour obtenir le contenu de la table:
reportez-vous à Jeu de résultats Java API pour plus d'informations 🙂