Problema Con Cursor dinámico
El problema está en que la tabla se crea dinámicamente, y su número de campos es variable.
Entonces, no sé como declarar una variable sobre la que hacer el fetch del cursor porque no se puede poner vRegistroCursor NombreTabla%rowtype de una tabla que aún no existe. Tampoco puedo crear una vacÃa, porque no sé el número de campos que va a tener, éste depende de un parámetro diferente en cada ejecución.
Te indico con tu ejemplo lo que me gustarÃa hacer, pero me da error en la declaracion, ya que no tengo 'NombreTabla' creada previamente.
DECLARE
TYPE TIPO_CURSOR IS REF CURSOR;
mi_cursor TIPO_CURSOR;
-----------------------------------
vRegistroCursor NombreTabla%ROWTYPE;
-----------------------------------
vSQL
BEGIN
vSQL:='CREATE TABLE NombreTabla AS(...)'
--Esta tabla tendrá un número de campos variable
EXECUTE IMMEDIATE vSQL;
OPEN mi_cursor FOR 'select * from NombreTabla';
FETCH mi_cursor INTO vRegistroCursor;
CLOSE mi_cursor;
END;
Entonces, no sé como declarar una variable sobre la que hacer el fetch del cursor porque no se puede poner vRegistroCursor NombreTabla%rowtype de una tabla que aún no existe. Tampoco puedo crear una vacÃa, porque no sé el número de campos que va a tener, éste depende de un parámetro diferente en cada ejecución.
Te indico con tu ejemplo lo que me gustarÃa hacer, pero me da error en la declaracion, ya que no tengo 'NombreTabla' creada previamente.
DECLARE
TYPE TIPO_CURSOR IS REF CURSOR;
mi_cursor TIPO_CURSOR;
-----------------------------------
vRegistroCursor NombreTabla%ROWTYPE;
-----------------------------------
vSQL
BEGIN
vSQL:='CREATE TABLE NombreTabla AS(...)'
--Esta tabla tendrá un número de campos variable
EXECUTE IMMEDIATE vSQL;
OPEN mi_cursor FOR 'select * from NombreTabla';
FETCH mi_cursor INTO vRegistroCursor;
CLOSE mi_cursor;
END;
