Como acessar Stored Procedures ORACLE em JAVA?

Pessoal, existe algum framework para fazer isso, ou como fazer diretamente via JDBC ?

Thanks! :slight_smile:

um exemplo :

CallableStatement cs = conexao.prepareCall( "{call myProc( ? ) }" ); cs.setInt( 1, 19652); cs.execute();

[quote=paribe]um exemplo :

CallableStatement cs = conexao.prepareCall( “{call myProc( ? ) }” );
cs.setInt( 1, 19652);
cs.execute();
[/quote]

Ok obrigado, mas aquele “?” é o argumento que myProc espera? Se tiver dois argumentos seria myProc(?,?) ?
Necessariamente entre chaves ??

E se eu esperar um ResultSet como resultado ??

Valeu!

CallableStatement cs;
try {
// Call a procedure with no parameters
cs = connection.prepareCall("{call myproc}");
cs.execute();

// Call a procedure with one IN parameter   
  cs = connection.prepareCall("{call myprocin(?)}");   
 
  // Set the value for the IN parameter   
  cs.setString(1, "a string");   
 
  // Execute the stored procedure   
  cs.execute();   
 
// Call a procedure with one OUT parameter   
  cs = connection.prepareCall("{call myprocout(?)}");   
 
  // Register the type of the OUT parameter   
  cs.registerOutParameter(1, Types.VARCHAR);   
 
  // Execute the stored procedure and retrieve the OUT value   
  cs.execute();   
  String outParam = cs.getString(1);     // OUT parameter   
 
// Call a procedure with one IN/OUT parameter   
  cs = connection.prepareCall("{call myprocinout(?)}");   
 
  // Register the type of the IN/OUT parameter   
  cs.registerOutParameter(1, Types.VARCHAR);   
 
  // Set the value for the IN/OUT parameter   
  cs.setString(1, "a string");   
 
  // Execute the stored procedure and retrieve the IN/OUT value   
  cs.execute();   
  outParam = cs.getString(1);            // OUT parameter   

} catch (SQLException e) {
}
CallableStatement cs;
try {
// Call a procedure with no parameters
cs = connection.prepareCall("{call myproc}");
cs.execute();

  // Call a procedure with one IN parameter
    cs = connection.prepareCall("{call myprocin(?)}");

    // Set the value for the IN parameter
    cs.setString(1, "a string");

    // Execute the stored procedure
    cs.execute();

  // Call a procedure with one OUT parameter
    cs = connection.prepareCall("{call myprocout(?)}");

    // Register the type of the OUT parameter
    cs.registerOutParameter(1, Types.VARCHAR);

    // Execute the stored procedure and retrieve the OUT value
    cs.execute();
    String outParam = cs.getString(1);     // OUT parameter

  // Call a procedure with one IN/OUT parameter
    cs = connection.prepareCall("{call myprocinout(?)}");

    // Register the type of the IN/OUT parameter
    cs.registerOutParameter(1, Types.VARCHAR);

    // Set the value for the IN/OUT parameter
    cs.setString(1, "a string");

    // Execute the stored procedure and retrieve the IN/OUT value
    cs.execute();
    outParam = cs.getString(1);            // OUT parameter
} catch (SQLException e) {
}

MrDataFlex ,

axo q esse link pode te ajudar

http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/basic.htm#i1008346