Bonjour,

J'espere que c'est le bon forum... comme il n'y avait que jdbc (pas de sqlj..) je l'ai mis là

Je suis en train d'écrire une classe qui se connecte à Oracle XE dans laquelle je dois faire un insert sur une table client.
Voici le script de création de la table CLIENTS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE Clients (
ci NUMBER(5), 
civilite  CHAR(3), 
nom VARCHAR(20), 
prenom VARCHAR(20), 
sexe CHAR(1), 
adr_lib   VARCHAR(50),
adr_cp    NUMBER(5), 
adr_ville VARCHAR(20),
CONSTRAINT pk_clients PRIMARY KEY (ci), 
CONSTRAINT ck_clients_civilite CHECK (civilite IN ('MR','MME','MLE')),
CONSTRAINT ck_clients_sexe     CHECK (sexe IN ('H','F')));
A l'execution, la connexion est établie, mais il bug au niveau du code sql.
Visiblement, il ne reconnait pas l'instruction SQLJ. Pourtant j'ai importé les lib nécessaires. A savoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
import java.sql.*;
import oracle.sqlj.*;
import oracle.sqlj.runtime.Oracle;
import java.lang.*;
import java.lang.String;
import java.io.*;
import java.sql.SQLException;
Mon code est le suivant :
la fonction Clavier.lire() retourne une chaine de caractere tappée au clavier.
Il bug au niveau de l'avant dernière ligne.
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
System.out.println("=== Saisissez les informations concernant le client \n");
System.out.println("Civilité : \n");
civilite = Clavier.lire();
System.out.println("Nom : \n");
nom = Clavier.lire();
System.out.println("Prénom : \n");
prenom = Clavier.lire();
System.out.println("Sexe (m/f) : \n");
sexe = Clavier.lire();
System.out.println("Libellé adresse : \n");
adr_lib = Clavier.lire();
System.out.println("Code postal : \n");
adr_cp = Integer.parseInt(Clavier.lire());
System.out.println("Ville : \n");
adr_ville = Clavier.lire();
System.out.println("Ajout du nouveau client...\n");
#sql {INSERT INTO clients VALUES (:IN civilite, :IN nom, :IN prenom, :IN sexe, :IN adr_lib, :IN adr_cp, :IN adr_ville)};
System.out.println("Ajout effectué avec succès.\n");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Exception in thread "main" java.lang.Error: Problèmes de compilation non résolus : 
Erreur de syntaxe sur le sème "Invalid Character", interface attendu
Erreur de syntaxe, insérez ";" pour effectuer FieldDeclaration
Erreur de syntaxe sur le sème ":", supprimez ce sème
Erreur de syntaxe sur le sème ":", supprimez ce sème
Erreur de syntaxe sur le sème ":", supprimez ce sème
Erreur de syntaxe sur le sème ":", supprimez ce sème
Erreur de syntaxe sur le sème ":", supprimez ce sème
Erreur de syntaxe sur le sème ":", supprimez ce sème
Erreur de syntaxe sur le sème ":", supprimez ce sème
Erreur de syntaxe, insérez ";" pour effectuer MethodDeclaration
 
at nomPackage.var_hotes.main(var_hotes.java:55)
Auriez-vous une idée, svp ?

Merci beaucoup