Soy nuevo en PL/SQL y acabo de llegar a los cursores en mi proceso de aprendizaje. He estado viendo parámetros de procedimientos almacenados con el tipo OUT SYS_REFCURSOR
que, por lo que yo entiendo, su propósito es 'devolver datos' como un puntero en lenguaje C. Me pregunto quién va a cerrar ese parámetro SYS_REFCURSOR
si el procedimiento tiene que abrirlo y no puede cerrarlo. (Si el procedimiento cierra el OUT SYS_REFCURSOR
, no habrá ningún dato que devolver).¿Cómo cerrar un cursor de retorno en PL/SQL?
Además, creo que es un mal diseño confiar en funciones externas distintas del procedimiento almacenado que contiene el parámetro OUT SYS_REFCURSOR
para cerrar el cursor. ¿Hay alguna forma de que pueda devolver una tabla desde un procedimiento almacenado sin usar cursores?