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
  |