Inserer une ligne dans ma base de donnée oracle 10g XE

yness91 Messages postés 26 Date d'inscription vendredi 12 mars 2010 Statut Membre Dernière intervention 27 mars 2011 - 18 mars 2010 à 12:49
yness91 Messages postés 26 Date d'inscription vendredi 12 mars 2010 Statut Membre Dernière intervention 27 mars 2011 - 18 mars 2010 à 19:50
Bonjour tout le monde,

J'espère que vous pourriez m'aider à résoudre ce problème :

Enfèt, je souhaite insérer un ligne au niveau d'une table de ma base de données, et j'utilise oracle 10g XE...

J'ai essayé de faire une méthode
public void insert ()
{
getconnexion();// c une méthode pour me connecter à la base
stmt =conn.createStatement();

stmt.executeUpdate("INSERT INTO professeurs (prenom,nom,cin) VALUES ('mohamed', 'arféwi','55555') ");
stmt.close();
conn.close();
}
// pour un tel traitement sa marche sans problème

mais quand j'essai de faire

stmt.executeUpdate("INSERT INTO professeurs (prenom,nom,cin) VALUES ("+ prenom +"," + nom+ ","+ cin+" ) ");
//ou prenom, nom et cin sont des variables sa ne marche plus et sa m'affiche comme exception

Exception in thread "main" java.sql.SQLException: ORA-00917: virgule absente

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1169)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1615)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1580)
at test.connexion.insert(connexion.java:83)
at test.Main.main(Main.java:37)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)


/// J'ai pas compris ou manke la virgule donc si quelqu'un pourra m'aider sa serais très gentil :)

4 réponses

Utilisateur anonyme
18 mars 2010 à 13:02
Bonjour

La réponse est là :
http://forums.sun.com/thread.jspa?threadID=427559&messageID=1905315&forumID=48

Use a PreparedStatement and setString() That way you don't run into any problems with special characters in your string values.


Il suffisait de demander à Google :)





0
yness91 Messages postés 26 Date d'inscription vendredi 12 mars 2010 Statut Membre Dernière intervention 27 mars 2011
18 mars 2010 à 13:30
Merci pour votre réponse Mr mais j'ai découvert c'est quoi le problème, Il y avait un problème lors de ma déclaration de la variable cin, je l'ai déclaré autant que double alors qu'elle devrait être un int :)

Maintenant sa marche
0
Utilisateur anonyme
18 mars 2010 à 14:28
Ca ne suffira pas. Tu fais ton malin mais quand tu auras certains caractères spéciaux dans tes chaines de caractère, ça ne marchera plus. Fais comme tu veux, débrouille-toi.

De plus, si tu ne nous donnes pas assez d'informations, ne t'étonne pas qu'on ne puisse pas t'aider correctement.













0
yness91 Messages postés 26 Date d'inscription vendredi 12 mars 2010 Statut Membre Dernière intervention 27 mars 2011
18 mars 2010 à 19:50
Bah c'est un champs de l'application qui ne récupère que des données numériques, donc sa fera l'affaire... Puis je ne comprend pas, je vous remercie et vous vous faîtes le mauvais... Sa ne fait rien en tout cas...
0