RESOLVIDO!Ajuda com retorno de Cursor na procedure

Galera estou usando java.sql.Types como faço para pegar um cursor com essa API?
Antes eu usava oracle.jdbc.OracleTypes porem minha conexao era feita atraves de uma classe JDBC agora estou usando conexao JNDI por isso estou usando java.sql.Types.
Tenho como pegar um Cursor? qual propriedade usar?

[quote=diogo soares]Galera estou usando java.sql.Types como faço para pegar um cursor com essa API?
Antes eu usava oracle.jdbc.OracleTypes porem minha conexao era feita atraves de uma classe JDBC agora estou usando conexao JNDI por isso estou usando java.sql.Types.
Tenho como pegar um Cursor? qual propriedade usar?[/quote]

OracleTypes.CURSOR

Faz assim…

            callStmt.setInt(1, manterClientesInfGeraisVO.getCodigo());            
            callStmt.registerOutParameter(2, OracleTypes.CURSOR);  
            callStmt.registerOutParameter(3, Types.INTEGER);
            callStmt.registerOutParameter(4, Types.VARCHAR);                                    
            callStmt.execute();

            mcig = (ResultSet) callStmt.getObject(2);
            
            callStmt.close();

é só importar o jar do oracle para a sua classe ou seu projeto. E impostar o oracle.jdbc.OracleTypes.

Entendeu…
???
Faloooww…
hehehe

Valeu wag?.ferreira, cara era realmente isso que eu estava querendo fazer :smiley:

Olá…
eu também tentei fazer isso mas dá erro do tipo incompatível…

A procedure é assim:

SP_S_ACCOUNT(p_LOGIN IN VN_LOGIN.ID%TYPE  := NULL,
                           p_TIPO  IN VARCHAR2          := NULL,             
                           p_REF   OUT SYS_REFCURSOR)

No java está assim:

CallableStatement cs;
			Connection con = ConnectionFactory.getConnection();
			cs = con.prepareCall("{call CVI_PCK.SP_S_ACCOUNT(?,?,?)}");

			cs.setString(1, p_Login);
			cs.setString(2, p_Tipo);
			cs.registerOutParameter(3, Types.REF);

E não funciona… o que pode ser ?

Ae velho…
Respondi o teu e-mail, mas para ajudar a galera ae também que esta com duvida nisto vou postar aqui tbm.

o seu codigo está assim

CallableStatement cs;   
            Connection con = ConnectionFactory.getConnection();   
            cs = con.prepareCall("{call CVI_PCK.SP_S_ACCOUNT(?,?,?)}");   
  
            cs.setString(1, p_Login);   
            cs.setString(2, p_Tipo);   
            cs.registerOutParameter(3, Types.REF);  

Mas o retorno do cursor voce não vai conseguir pegar com o REF.

Então o que eu fiz foi importei o oracleTypes .

import java.sql.Types;
import oracle.jdbc.OracleTypes;

assim seu codigo ficaria assim

CallableStatement cs;   
            Connection con = ConnectionFactory.getConnection();   
            cs = con.prepareCall("{call CVI_PCK.SP_S_ACCOUNT(?,?,?)}");   
  
            cs.setString(1, p_Login);   
            cs.setString(2, p_Tipo);   
            cs.registerOutParameter(3, OracleTypes.CURSOR);  
            //continuara usando o java.sql.types, só vai usar o oracle para pegar cursor
            cs.registerOutParameter(4, Types.Integer);
            cs.execute();

            //aqui tu pega o cursor
            ResultSet cs = (ResultSet) callStmt.getObject(2);
 

Velho acho que é isto…Espero ter ajudado…Não sei se fui claro…Não me dou bem explicando nada…
Mas qualquer coisa prende no grito
Falow