StoredProcedure avec Out Parameter Index-by table
Bonjour,
J'essaie d'appeler avec Spring une procédure stockée dont les paramètres de sorties sont des Index-by tables (définition ci-dessous)
Code:
1 2 3 4 5 6 7
| Type Tab1 Is Table Of VarChar2 Index By Binary_Integer;
/* Declaration des procedures */
Procedure TEST(
ParamIn1 In VarChar2,
T_ParamOut1 Out Tab1,
); |
J'arrive à appeler cette procédure en JDBC sans passer par Spring via la code ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| // Stored procedure call
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:DEV9I", "******",
"******");
String command = "{call Toto.TEST(?,?)}";
OracleCallableStatement cstmt = (OracleCallableStatement) con.prepareCall(command);
cstmt.setString(1, "test");
cstmt.registerIndexTableOutParameter(2, 100, Types.VARCHAR, 250);
cstmt.execute();
} catch (Exception e) {
} |
J'essaie maintenant d'appeler cette procédure en passant par Spring mais je ne vois pas comment déclarer le paramètre de sortie.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class TESTStoredProcedureImpl extends StoredProcedure {
private static final String STORED_PROC_NAME = "Toto.TEST";
public TESTStoredProcedureImpl(DataSource ds) {
super(ds, STORED_PROC_NAME);
declareParameter(new SqlParameter("ParamIn1", Types.VARCHAR));
/* ???????? */
compile();
}
[...]
} |
Pouvez-vous m'aider sur ce point svp ? Merci.