Pessoal, bom dia, alguém sabe me dizer que tipo de variável no java representa o REF CURSOR do oracle?
Grato
Pessoal, bom dia, alguém sabe me dizer que tipo de variável no java representa o REF CURSOR do oracle?
Grato
Eu utilizo oracle.jdbc.OracleTypes.CURSOR.
Exemplo:CallableStatement st =
conn.prepareCall( "{? = call PKG_CONSULTA.FC_PEDIDOS_PENDENTES(?,?,?,?,?,?,?,?,?,?)}");
// Recordset de saida
st.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
//Parametros de entrada
st.setString(2, pPedido[0]); //Numero do pedido
st.setString(3, codigoItem[0]); //Codigo do item
st.setString(4, pPedCli[0]); //Numero do pedido do cliente
st.setString(5, dtNecIni[0]); //Data da necessidade inicial
st.setString(6, dtNecFin[0]); //Data da necessidade final
st.setString(7, codigoCliente[0]); //Codigo do Cliente
//Parametros de saida
st.registerOutParameter(8, java.sql.Types.FLOAT); //Valor total
st.registerOutParameter(9, java.sql.Types.INTEGER); //Total de itens distintos
st.registerOutParameter(10, java.sql.Types.VARCHAR); //Numero do erro
st.registerOutParameter(11, java.sql.Types.VARCHAR); //Descricao do erro
//Executa a procedure
st.execute();
//Resultset
ResultSet rs = (ResultSet) st.getObject(1);
Eu utilizo oracle.jdbc.OracleTypes.CURSOR. Exemplo:CallableStatement st = conn.prepareCall( "{? = call PKG_CONSULTA.FC_PEDIDOS_PENDENTES(?,?,?,?,?,?,?,?,?,?)}"); // Recordset de saida st.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR); //Parametros de entrada st.setString(2, pPedido[0]); //Numero do pedido st.setString(3, codigoItem[0]); //Codigo do item st.setString(4, pPedCli[0]); //Numero do pedido do cliente st.setString(5, dtNecIni[0]); //Data da necessidade inicial st.setString(6, dtNecFin[0]); //Data da necessidade final st.setString(7, codigoCliente[0]); //Codigo do Cliente //Parametros de saida st.registerOutParameter(8, java.sql.Types.FLOAT); //Valor total st.registerOutParameter(9, java.sql.Types.INTEGER); //Total de itens distintos st.registerOutParameter(10, java.sql.Types.VARCHAR); //Numero do erro st.registerOutParameter(11, java.sql.Types.VARCHAR); //Descricao do erro //Executa a procedure st.execute(); //Resultset ResultSet rs = (ResultSet) st.getObject(1);
OK, acho que a solução é essa mesmo, só que não estou conseguindo usar o oracle.jdbc.OracleTypes.CURSOR.
tenho que fazer algum import?
OK, acho que a solução é essa mesmo, só que não estou conseguindo usar o oracle.jdbc.OracleTypes.CURSOR.tenho que fazer algum import?
Trabalho com Eclipse e tive que incluir a API do Oracle JDBC (oraclejdbc.jar) em:
–> Propriedades do projeto
–> Caminho de construção Java
–> Bibliotecas
–> Incluir JARs externos
OK, acho que a solução é essa mesmo, só que não estou conseguindo usar o oracle.jdbc.OracleTypes.CURSOR.tenho que fazer algum import?
Trabalho com Eclipse e tive que incluir a API do Oracle JDBC (oraclejdbc.jar) em:
–> Propriedades do projeto
–> Caminho de construção Java
–> Bibliotecas
–> Incluir JARs externos
ok, acho simples, uso o netbeans e é praticamente a mesma coisa. o problema é que não tenho o oraclejdbc.jar, poderia me dizer onde consigo?
OK, acho que a solução é essa mesmo, só que não estou conseguindo usar o oracle.jdbc.OracleTypes.CURSOR.tenho que fazer algum import?
Trabalho com Eclipse e tive que incluir a API do Oracle JDBC (oraclejdbc.jar) em:
–> Propriedades do projeto
–> Caminho de construção Java
–> Bibliotecas
–> Incluir JARs externosok, acho simples, uso o netbeans e é praticamente a mesma coisa. o problema é que não tenho o oraclejdbc.jar, poderia me dizer onde consigo?
já consegui o .jar… valeus.
OK, acho que a solução é essa mesmo, só que não estou conseguindo usar o oracle.jdbc.OracleTypes.CURSOR.tenho que fazer algum import?
Trabalho com Eclipse e tive que incluir a API do Oracle JDBC (oraclejdbc.jar) em:
–> Propriedades do projeto
–> Caminho de construção Java
–> Bibliotecas
–> Incluir JARs externosok, acho simples, uso o netbeans e é praticamente a mesma coisa. o problema é que não tenho o oraclejdbc.jar, poderia me dizer onde consigo?
já consegui o .jar… valeus.
amigo, só mais uma coisa, colocando o .jar no class path já funciona? tenho que dá algum import?
amigo, só mais uma coisa, colocando o .jar no class path já funciona? tenho que dá algum import?
Tentei setar o .jar no classpath, mas não funcionou…
amigo, só mais uma coisa, colocando o .jar no class path já funciona? tenho que dá algum import?Tentei setar o .jar no classpath, mas não funcionou…
Eduarte, funcionou, mais o problema agora é o retorno, veja só:
CallableStatement cs = con.prepareCall("{call IDENT_BS01(?,?,?)}");
cs.setInt(1, 1);
System.out.println("parametro 1");
cs.setString(2, "11111111");
System.out.println("parametro 2");
cs.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR);
System.out.println("parametro 3");
cs.execute();
if( cs.getString(3) == null){
String mensagem = cs.getString(3);
System.out.println(mensagem);
}
Só que o valor de mensagem está sendo null, quando na realidade tinha q vir alguma coisa…
tem alguma dica?
<blockquote><div class="quote-author">“dgomesbr”:</div>
if( cs.getString(3) == null){
String mensagem = cs.getString(3);
System.out.println(mensagem);
}
Só que o valor de mensagem está sendo null, quando na realidade tinha q vir alguma coisa…
tem alguma dica.
Para referenciar um REF CURSOR no Java vc deve utilizar o método getObject() e fazer um CAST p/ o ResultSet e depois utilizar o getString p/ capturar o valor de cada campo.
Exemplo:
ResultSet rs = (ResultSet) cs.getObject(3);
while (rs.next()) {
System.out.println(cs.getString("item"));
System.out.println(cs.getString("descricao"));
}
// Nesse exemplo o REF CURSOR retorna os campos "item" e "descricao"
// através da consulta:
// SELECT item, descricao
// FROM cad_itens;
Blz?