Bonjour à tous,
Voila mon application crée et exécute une procédure qui selon la date passé paramètre effectue un update. Lors que la date ne répond pas à la condition, la procédure s'exécute normalement et je peux récupérer le message mais lors que la date est correct l'application gèle... L'erreur vient de l'update mais je la trouve pas... je devrais dire je la comprends pas^^
Si vous trouvez le problème se serait super
J'ai également essayé avec le where suivant:
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 try { //création de la procédure si nécessaire. requete_sql = "create or replace procedure SP_TAXER\n" + "(\n" + "DATE_DEB IN OUT varchar\n" + ")\n" + "is\n" + "DATE_ERR exception;\n" + "begin\n" + "if (DATE_DEB >= add_months(sysdate,-1))then\n" + "update CONTRAT\n" + "set MNT_TPS_CO = MNT_CONTRAT_CO * 0.05,\n" + "MNT_TVQ_CO = MNT_CONTRAT_CO * 0.075\n" + "where DATE_CONTRAT >= to_date(DATE_DEB, 'DD/MM/YY');\n" + "DATE_DEB :='Les contrats après le ' || DATE_DEB || ' ont été taxés.';\n" + "else\n" + "raise DATE_ERR;\n" + "end if;\n" + "exception when DATE_ERR then\n" + "DATE_DEB :='La date doit être supérieure à la date du jour -1 mois.';\n" + "end;"; stmt.executeUpdate(requete_sql); //appel de la procédure requete_sql = "{call SP_TAXER (?)}"; CallableStatement call = connexion.prepareCall(requete_sql); //on passe en paramétre la date call.setString(1, stringDate); //on defini le parametre en tant que paramètre OUT call.registerOutParameter(1, Types.VARCHAR); call.execute(); //récupération des ResultSet resultatsTextArea.setText(call.getString(1)); } catch(Exception ex){ //On vérifie la présence du message anglais de login invalide. if (ex.getMessage().indexOf("invalid username/password")>0) { resultatsTextArea.setText("La combinaison mot de passe usager est invalide \n"); } else { resultatsTextArea.setText(ex.getMessage() + "\n"); } }
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2"where DATE_CONTRAT >= DATE_DEB;\n" +
AD






Répondre avec citation


Partager