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 :
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
stUser.registerOutParameter(1,Types.BOOLEAN);
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.
Partager