Store Procedure armazena em Banco de Dados

3 respostas
T

:?: :?: :?: :?: :?:
Olá,

:arrow: Gostaria de saber como chamar uma Store Procedure armazena em Banco de Dados Oracle dentro de uma classe Java.

A minha procedure recebe dois parâmetros e retorna um outro parâmetro depois de fazer um cálculo.

Será que alguém teria algum exemplo pra mim?
:?: :?: :?: :?:


Crie como um Deus, mande como um Rei e trabalhe como um Escravo!
Steve Jobs

3 Respostas

P

Só uma pergunta ?

vc não consegue fazer

Resultado =  stmconsulta.executeQuery("exec nomeprocedure " + parametro1 + " , " + parametro2);

Resultado.next();

return Integer.parseInt(Resultado.getString(nomedacolunaderetorno));
E
public double calculaValor(double valor1, double valor2) {

    double valorCalculado = 0;

    try {

        DbConnection conex = new DbConnection();
        Connection conn = conex.getPooledConnection();

        /*-----------------------------------------------------------------------------
           Cada "?" representa um parâmetro de entrada/saída.
           Se a sua procedure estiver dentro de uma PACKAGE vc
           deve informar o nome da package antes do nome da
           procedure.
           Ex.: Se a procedure SP_CALCULO estivesse dentro da
                package PKG_TESTE a chamada ficaria assim: PKG_TESTE.SP_CALCULO(?,?,?)
        ------------------------------------------------------------------------------*/

        CallableStatement st = conn.prepareCall("{call SP_CALCUL0(?,?,?)}");

        /* -----------------------------------------------------------
             Os parâmetros de entrada/saída devem ter o mesmo tipo e 
           	 estar na mesma ordem da Procedure.
           -----------------------------------------------------------*/

        //Parâmetros de entrada
        st.setDouble(1, valor1);
        st.setDouble(2, valor2);

        //Parâmetro de saída
        st.registerOutParameter(3, Types.DOUBLE);

        //Executa a procedure.
        st.execute();

        // Captura o valor retornado 
        // pelo parâmetro de saída.
        valorCalculado = st.getDouble(3);

        st.close();
        conn.close();

    } catch (SQLException sex) {
        sex.printStackTrace();
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return valorCalculado;
}
B

E ai pessoal?
O que acontece com este topico? Esta encerrado? Qual cod funciona?

Criado 16 de fevereiro de 2004
Ultima resposta 8 de jun. de 2005
Respostas 3
Participantes 4