IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[JDBC] Problème avec une procédure SQL


Sujet :

JDBC Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [JDBC] Problème avec une procédure SQL
    Bonjour à tous,
    J'en appelle à votre aide car j'ai un soucis que je n'arrive pas à résoudre...

    J'ai une procédure stockée à laquelle je fais appel pour enregistrer des données, seulement elle ne se passe rien dans la base...
    Je ne comprends vraiment pas pourquoi, sachant que la procédure enregistre parfaitement sous SQL Developper, mais pas quand j'en fais appel avec Java.

    Voici ma procédure stockée:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    create or replace PROCEDURE         "PRC_EMPRUNT" ( v_id IN String, v_idex IN String )
    AS
      COTISECHU EXCEPTION; 
      nouvelledate DATE; 
    BEGIN
      SAVEPOINT CREATION_ANNULATION; 
     
      INSERT INTO EMPRUNT (idemprunt,idretour,idemprunteur,dateemprunt,dateeretourprevis) 
      VALUES (EMPRUNT_idemprunt.nextval,RETOUR_idretour.nextval,v_id,sysdate,+sysdate + 15); 
     
      INSERT INTO RETOUR (idretour,idemprunt,nbjourretour,dateretoureffectif) 
      VALUES ( RETOUR_idretour.CURRVAL,EMPRUNT_idemprunt.CURRVAL,15,NULL); 
     
      UPDATE EXEMPLAIRE SET idemprunt = EMPRUNT_idemprunt.CURRVAL 
      WHERE idex = 
      (SELECT idex FROM EXEMPLAIRE E 
      JOIN OUVRAGE O 
      ON e.idouvrage=o.idouvrage 
      WHERE e.idex like  v_idex );
     
      SELECT datecotisemprunteur+365 days INTO nouvelledate FROM EMPRUNTEUR 
      WHERE idemprunteur = v_id; 
     
      IF nouvelledate < sysdate THEN 
        RAISE COTISECHU; 
      END IF; 
      --v_msg := 'youhou7';
     
    EXCEPTION
      WHEN cotisechu THEN 
       ROLLBACK TO SAVEPOINT CREATION_ANNULATION; 
       RAISE_APPLICATION_ERROR (-20001,'Insertion impossible, le terme de la cotisation est échu'); 
     
    END;
    L'appel de ma méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class validerEmpruntListener implements ActionListener
    	{
    		public void actionPerformed ( ActionEvent eokEmprunt)
    		{
    			if (eokEmprunt.getSource () == valider) validerEmprunt_click();
    		}
     
    		private void validerEmprunt_click()
    		{
    			x = chisbnissnLivre.getText();
    			vID = chidemprunteur.getText();
    			methode.validerEmprunt(x, vID);
    		}
    	}
    et enfin la définition de ma méthode:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    public static void validerEmprunt (String x, String vID) 
    	{
    		Connection con = null;
     
    		try 
    		{ 			
    			Class.forName ("oracle.jdbc.driver.OracleDriver");					//	Chargement de la classe du pilote
    		}
    		catch (ClassNotFoundException e)
    		{
    			System.out.println ("driver non chargé!");
    		}
     
    		try
    		{
    			String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
    			con = DriverManager.getConnection(url,"***","***");	//	Chargement du pilote et connexion à la base
    			con.setAutoCommit (false);
    		}
    		catch (SQLException e)
    		{	
    			System.out.println ("connection impossible");
    		}	
     
    		try
    		{
    			String sql = " begin prc_EMPRUNT(?,?); end";
    			CallableStatement CS = con.prepareCall(sql); 									// 	Création d'un objet requête directe
     
    			CS.setString(2, x);
    			CS.setString(1, vID );
     
    			con.commit();
    			CS.close(); 
    			con.close(); 		
     
     
    		}
    		catch(SQLException e)
    		{
    			System.out.println ("Problème SQL !");
    			e.printStackTrace ();
    		}
    	}

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour,

    Tu peux te référer à la FAQ : http://java.developpez.com/faq/jdbc/...lableStatement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

Discussions similaires

  1. Problèmes avec une procédure SQL server 2000
    Par verryvalentino dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2012, 21h23
  2. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 17h47
  3. Problème avec une requete SQL sous access
    Par Luther13 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 14/12/2005, 10h39
  4. problème avec une procédure recursive
    Par vbcasimir dans le forum SQL
    Réponses: 1
    Dernier message: 10/06/2005, 16h38
  5. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo