Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/12/2013, 14:58
Avatar de pcarvajal
pcarvajal
 
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: Ejecutar procedimiento almacenado con Cursor

Devuelve datos... el problema estaba en que el largo de la variable que recibía el dato del cursor era de largo más pequeño que el que le correspondía por definición en la tabla, por lo que cambié la declaración de esas variables y funcionó.

Dejo el código por si a alguien más le sirve:

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE SpGestionLeerXRutFecha(p_rut IN VARCHAR2, p_ResultSet OUT SYS_REFCURSOR)
  2. AS
  3. BEGIN
  4. OPEN p_ResultSet FOR
  5.     SELECT NTIDGES, NTNOTA
  6.     FROM rsfo.RNOTAGES
  7.     WHERE NTLOTE = p_rut;
  8. END;
  9.  
  10.  
  11. /**** Ejemplo de Ejecución ****/
  12. DECLARE
  13.   v_cur SYS_REFCURSOR;
  14.   /*
  15.   v_a   VARCHAR2(20);
  16.   v_b   VARCHAR2(255);  
  17.   */
  18.   v_a   rsfo.RNOTAGES.NTIDGES%TYPE;
  19.   v_b   rsfo.RNOTAGES.NTNOTA%TYPE;
  20. BEGIN
  21.   SpGestionLeerXRutFecha('99556580-3',v_cur);
  22.   LOOP
  23.     FETCH v_cur INTO v_a, v_b;
  24.     EXIT WHEN v_cur%NOTFOUND;
  25.     dbms_output.put_line(v_a || '||' || v_b);
  26.   END LOOP;
  27.   CLOSE v_cur;
  28. END;
Gracias gnzsoloyo por tu tiempo!
Saludos!

Última edición por gnzsoloyo; 18/12/2013 a las 16:51 Razón: Se agradece usar el Highlight "SQL", por favor.