Retorno de um ResultSet

Galera !!! :smiley:

Estou uma pequena duvida, é o seguinte:

    Estou executando um PL/SQL dinamico que faz um cursor, isto é executado tando em Oracle como em SQLServer. A duvida é: como faço para pagar este cursor e colocar em um ResultSet ? O codigo é o seguinte:
    String vplsql = "declare " +
                        "   total number := 0; " +
                        "begin " +
                        "  open ? for select username,created,profile " +
                        "        from users;                 " +
                        "  ? := total + 100;          " +
                        "end;";


    CallableStatement executa = conn.prepareCall(vplsql);



Como faço para este cursor :?:

Value !!! :?

Aham, não é mais fácil executar a query diretamente, em vez de tentar usar um cursor?
(se bem que deve haver alguma classe oracle.* no classes.zip que suporte cursores diretamente em Java. )

mano !!! :smiley:

Este é um PL/SQL dinamico, quem digita é o usuário. Para o Oracle sem problema ja seu como fazer, mas gostaria de fazer de uma forma que seja generico para todos os bancos.

Você pode fazer ou tem alguma documentação ?

:stuck_out_tongue:

O que a consulta deve retornar?

Preciso pegar o cursor do PL/SQL e colocar em um ResultSet… :roll:

CURSOR é uma coisa que não faz parte do JDBC.
Portanto o suporte a cursores é dependente do banco de dados.
Por exemplo, no Oracle é possível usar variáveis REF CURSOR em programas Java, e usar a variável como se fosse um ResultSet normal. (baixe o guia “JDBC Developer’s Guide and Reference” no OTN - otn.oracle.com )
Acho que você está com cursores na cabeça. Um conjunto de dados (resultset) é algo que é suportado pelo JDBC para todos os bancos, mas um cursor já é um detalhe de implementação (que existe nos bancos SQL que suportam stored procedures) cujo suporte normalmente requer classes fora do JDBC, como é o caso do Oracle (pacotes oracle.sql.* )

Exatamente pelo motivo explicado muito bem por Thingol que fiz minha pergunta.

Retorne os dados à classe Java, não um cursor-oracle-plus :wink:

“Ah, mas o cliente não vai trocar de database.”
Leia meus favoritos.