Bonjour à tous,

Je réalise une application JAVA 1.6 avec une base ORACLE 10g.

La connexion avec le driver fonctionne bien.

J'ai décidé d'utiliser des procédures / fonctions stockées pour mettre à jour ma base de données depuis mon application.

Voici un exemple :

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
 
private connexionBase cnxBase;  
private CallableStatement  st;
 
try 
{
    stUser = cnxBase.getConnection().prepareCall("{? = call METHODE_ACTION.CreerAction('ee','rr',2)}");
    stUser.registerOutParameter(1,Types.BOOLEAN);
    stUser.executeUpdate();
    //stUser.execute();
}
catch(SQLException ex) 
{
     System.out.println(ex.getMessage());
     ex.printStackTrace();
}
J'ai une classe connexionBase qui contient les infos de connexion à ma base de données.

Voici l'exception qui est jetée sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
stUser.registerOutParameter(1,Types.BOOLEAN);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Type de colonne non valide
java.sql.SQLException: Type de colonne non valide
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
        at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3433)
        at oracle.jdbc.driver.T2CCallableStatement.registerOutParameterInternal(T2CCallableStatement.java:1297)
        at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:268)
        at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:348)
        at Frame.frmNewAction.saveClick(frmNewAction.java:162)
Je ne comprends pas pourquoi j'ai cette erreur. Ma procédure renvoie bien un booléen.

Pourriez-vous m'éclairer ?

Merci.