Mric78 | J'ai un gros problème urgent consernant l'execution d'une procédure depuis SQL.
J'ai ouvert ma connexion, et j'ai donc le code suivant pour executer ma procédure :
Code :
- //Connexion déclaré en variable global cnx.
- public void execproc(String TF, String CS, String DS, String VO){
- try {
- CallableStatement proc = cnx.prepareCall("{ ? = call ajout_explr(?,?,?,?) }" );
- proc.setString(1,TF);
- proc.setString(2,CS);
- proc.setString(3,DS);
- proc.setString(4,VO);
- proc.execute();
- }
- catch(SQLException e) {
- String error = e.toString();
- System.out.println("Erreur sur le traitement de la procedure : " + error);
- }
- }
|
L'erreur SQL qui revient est donc : "ORA-01008: Toutes les variables ne sont pas liées".
La procédure a été testé sur oracle et marche très bien :
Code :
- CREATE OR REPLACE PROCEDURE ajout_explr(tf string, cs string, ds string, voex string) IS
- nf integer;
- maxne integer;
- maxnf integer;
- BEGIN
- select MAX(numExemplaire)+1 into maxne FROM Exemplaire;
- nf := verif_film_existe(tf);
- IF (nf=-1) THEN
- select MAX(numfilm)+1 into maxnf FROM film;
- INSERT INTO film(numfilm,titre) VALUES (maxnf,tf);
- DBMS_output.put_line('Film ajouté dans la base');
- SELECT numfilm into nf
- FROM film
- WHERE Titre=tf;
- END IF;
- INSERT INTO exemplaire(NumExemplaire,NumFilm,CodeSupport,DetailSupport,VO)
- VALUES(maxne,nf,cs,ds,voex);
- END ajout_explr;
- /
|
Merci d'avance pour vos réponses, je suis vraiment bloqué et c'est assez chiant Message édité par Mric78 le 06-12-2006 à 14:43:49
|