Os par??metros INOUT s??o mapeados em uma matriz do tipo do par??metro no Java (O m??todo deve receber uma matriz como seu par??metro). Isto est?? em conformidade com as recomenda????es do padr??o SQL.
CallableStatement call = conn.prepareCall(
"{CALL dobreMeuInteiro(?)}");
// para os par??metros INOUT, ?? boa pr??tica registrar
// o par??metro de sa??da antes de definir o valor de entrada
call.registerOutParameter(1, Types.INTEGER);
call.setInt(1,10);
call.execute();
int retval = call.getInt(1);
public static void dobreMeuInteiro(int[] i) {
i[0] *=2;
/* O Derby retorna o primeiro elemento da matriz. */
}
Tipo do JDBC | Tipo da matriz para o par??metro do m??todo | Valor e tipo retornado |
---|---|---|
BIGINT | long[] | long |
BINARY | byte[][] | byte[] |
BIT | boolean[] | boolean |
DATE | java.sql.Date[] | java.sql.Date |
DOUBLE | double[] | double |
FLOAT | double[] | double |
INTEGER | int[] | int |
LONGVARBINARY | byte[][] | byte[] |
REAL | float[] | float |
SMALLINT | short[] | short |
TIME | java.sql.Time[] | java.sql.Time |
TIMESTAMP | java.sql.Timestamp[] | java.sql.Timestamp |
VARBINARY | byte[][] | byte[] |
OTHER | seuTipo[] | seuTipo |
JAVA_OBJECT (v??lido apenas nos ambientes Java2/JDBC 2.0) | seuTipo[] | seuTipo |
Deve ser registrado o tipo de dado de sa??da do par??metro antes de executar a chamada. Para os par??metros INOUT, ?? boa pr??tica registrar o par??metro de sa??da antes de definir seu valor de entrada.