Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2013, 11:05
Avatar de pcarvajal
pcarvajal
 
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 10 meses
Puntos: 8
Pregunta Ejecutar procedimiento almacenado con Cursor

Buenas!
Antes que nada, soy neofito en Oracle, así es que, si mi pregunta es muy básica, pido disculpas de antemano.

Debo hacer un procedimiento almacenado que me retorne 2 campos de una consulta, el total de registros va de 0 a N.

Asi entonces, busqué un ejemplo y lo acomdé de la siguiente manera:
Código SQL:
Ver original
  1. /* Create package */
  2. CREATE OR REPLACE PACKAGE pkgGestionLeerXRutFecha3
  3. AS
  4. TYPE cursorType IS REF cursor;
  5. END;
  6. /
  7.  
  8.  
  9. CREATE OR REPLACE PROCEDURE SpGestionLeerXRutFecha3
  10. (
  11. p_rut      IN   VARCHAR2,
  12. p_ResultSet        OUT  pkgGestionLeerXRutFecha3.cursorType
  13. )
  14. AS
  15. BEGIN
  16. OPEN p_ResultSet FOR
  17.     SELECT NTIDGES, NTNOTA
  18.     FROM rsfo.RNOTAGES
  19.     WHERE NTLOTE = p_rut;
  20.  
  21. END SpGestionLeerXRutFecha3;
  22. /
[/PHP]

Lo que no sé es como testearlo (estoy trabajando con DBArtisan), el código que tengo es el siguiente (pero me arroja error en la primera línea)

Código SQL:
Ver original
  1. variable resultSet  refcursor;
  2. EXEC SpGestionLeerXRutFecha3('99556580-3', :resultSet);
  3. PRINT :resultSet;
[/PHP]


La idea de todo esto es ejecutar el procedimiento desde .net y rescatar los datos que el sp retorne, pero primero quiero validar que el sp retorna registros.

saludos

Última edición por gnzsoloyo; 18/12/2013 a las 11:19 Razón: MUY MAL etiquetado. SQL NO ES PHP.