|    
			
				02/07/2008, 17:16
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: junio-2008 Ubicación: D.F. 
						Mensajes: 62
					 Antigüedad: 17 años, 4 meses Puntos: 1 |  | 
  |  Respuesta: Alguien ha hecho un procedimiento que devuelva un select??? a resultset de  
  Que Tal,
 Bueno  no se si lo que buscas es la parte de Oracle o la de Java, pero de cualquier forma te muestro la forma de hacerlo
 en ambas partes.
 
 
 
 --===========================================
 --     P A R T E     D E     O R A C L E
 --===========================================
 
 
 CREATE OR REPLACE PACKAGE NOMBRE_PAQUETE IS
 
 TYPE NOMBRE_REFCURSOR   IS REF CURSOR; -- DECLARAS EL TIPO DE REF CURSOR
 
 PROCEDURE proc_cursor (pValores OUT NOMBRE_REFCURSOR);
 
 END NOMBRE_PAQUETE;
 /
 
 CREATE OR REPLACE PACKAGE BODY NOMBRE_PAQUETE IS
 
 
 -- REGRESA UN REF CURSOR DEL TIPO DECLARADO
 PROCEDURE proc_cursor(pInfo OUT NOMBRE_REFCURSOR) IS
 vrParam   NOMBRE_REFCURSOR;
 BEGIN
 
 -- TU CÓDIGO
 
 -- ABRIR EL REF CURSOR CON EL QUERY QUE CONTENGA TUS PARÁMETROS
 OPEN vrParam FOR
 SELECT 'REF' AS PRAM2, 'CURSOR' AS PARAM2
 FROM DUAL;
 
 pInfo := vrParam;
 
 EXCEPTION
 WHEN OTHERS THEN
 -- TUS EXECPCIONES
 END proc_cursor;
 
 END NOMBRE_PAQUETE;
 /
 
 
 
 --===========================================
 --     P A R T E     D E     J A V A
 --===========================================
 
 package project1;
 
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import oracle.jdbc.OracleCallableStatement;
 
 import oracle.jdbc.OracleTypes;
 import java.sql.SQLException;
 
 /**
 *
 * @author OSCAR HERNANDEZ BARRON
 */
 public class SPCallOra {
 
 
 
 public static void main(String[] args){
 
 Connection conn = null;
 OracleCallableStatement stmt = null;
 try {
 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
 
 conn = DriverManager.getConnection("jdbc:oracle:thin:@IP:  PUERTO:SID", "USUARIO","PASSWORD");
 
 
 stmt =(OracleCallableStatement)conn.prepareCall( "{ call NOMBRE_PAQUETE.PROC_CURSOR(?) } " );
 stmt.registerOutParameter( 1, OracleTypes.CURSOR);
 
 
 stmt.execute();
 
 
 String val = stmt.getString(9);
 System.out.println("****Mensaje: "+val);
 
 ResultSet rs = (ResultSet) stmt.getObject(1);
 while(rs.next()) {
 System.out.println(""+rs.getString(1));
 System.out.println(""+rs.getString(2));
 }
 
 } catch (SQLException se) {
 System.out.println(se.toString());
 } catch (Exception e) {
 
 System.out.println(e.toString());
 } finally {
 try {
 stmt.close();
 conn.close();
 } catch (SQLException se) {
 System.out.println(se.toString());
 }
 }
 }
 }
 
 
 ESPERO TE SEA DE UTILIDAD
 
 SALUDOS.
     |