Requête Oracle avec Tomcat - SQL/NoSQL - Programmation
Marsh Posté le 07-12-2004 à 11:16:22
Je connais rien à Tomcat, et pour les problèmes de config Oracle, c'est sans moi.
Cependant, sans le message d'erreur, je vois pas comment une personne qui s'y connaît pourrait te venir en aide efficacement
Marsh Posté le 07-12-2004 à 11:19:05
tu as raison
Citation : |
Marsh Posté le 07-12-2004 à 11:21:36
Bon, même sans rien comprendre, vire ton ";" dans le requête, je suis sûr qu'au pire, ton message d'erreur sera différent
Quand on utilise ODBC, JDBC ou OLEDB, les ";" en fin de requête sont interdits.
Marsh Posté le 07-12-2004 à 11:30:36
magnifique !
tu ne peux pas imaginer depuis combien de temps je suis sur cette page...
en fait, j'avais déjà essayer ça il y a qq temps
mais à ce moment j'avais d'autres erreurs
Marsh Posté le 07-12-2004 à 11:33:13
Moi aussi j'ai bien galéré avec ça
A noter que si tu as plusieurs requêtes à passer à la suite (deux insert par exemple) tu peux par contre mettre un ";" entre les deux requête (ou un simple espace quand il s'agit de SQL Server, mais ça vient de son parseur qui est un peu bizarre )
Marsh Posté le 07-12-2004 à 11:36:02
PS: Le coup des requêtes à la suite sur un même appel, c'est utile quand tu utilises une séquence par exemple :
"insert into matable (id, nom) values (seq.nextval, 'toto');select seq.currval from dual"
=> A ce moment, tu ouvre la requête comme un curseur, et tu récupère la valeur de l'id créé. Vu que les ponts de type ODBC, JDBC, OLEDB sont transactionnels, la valeur retournée est obligatoirement la valeur que tu as généré.
Tandis que si tu split ce code en deux appels depuis Java, tu ne peux pas garantir que le currval sera le même que ton nextval.
Marsh Posté le 07-12-2004 à 11:37:35
C'est un peu fort pour moi
mais je comprends que ça puisse être utile
Marsh Posté le 07-12-2004 à 11:45:13
La bidouille que je t'ai indiqué pour la séquence, ça reste une bidouille hein Dans tous les cas, il vaut mieu faire ça proprement. Concentre-toi là dessus
Marsh Posté le 07-12-2004 à 11:03:02
Salut !
Je ne parviens pas à faire accepter une requête SQL pour Oracle avec Tomcat.
Voici mon code:
<%@page import="java.net.URL"%>
<%@page import="java.sql.*"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver" );
Connection con = DriverManager.getConnection ("jdbc:oracle:thin:@gssclients:1521:ORACLE","system","admin" );
out.println("OK, the connection to the db is working" );
Statement smt = con.createStatement ();
ResultSet rs = smt.executeQuery("SELECT * FROM bouh;" );
ResultSetMetaData rsMeta = rs.getMetaData();
int noCols = rsMeta.getColumnCount();
out.println("<html><head><title>Oracle - connexoracle.jsp</title></head><body>" );
out.println("<table border><tr>" );
for (int c=1; c<=noCols; c++) {
String el = rsMeta.getColumnLabel(c);
out.println("<th> " + el + " </th>" );
}
out.println("</tr>" );
while (rs.next()) {
out.println("<tr>" );
for (int c=1; c<=noCols; c++) {
String el = rs.getString(c);
out.println("<td> " + el + " </td>" );
}
out.println("</tr>" );
}
out.println("</table>" );
out.println("</body></html>" );
rs.close();
smt.close();
%>
Il me met une erreur au niveau de la ligne
ResultSet rs = smt.executeQuery();
alors que la requête est bonne car testée dans la concole Oracle.
Je ne pige pas...
---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron