Problema Con Cursor dinámico

Pascualin
08 de Abril del 2004
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;

pepito
08 de Abril del 2004
Tú eres demasiado dinámico.
¿Por qué no haces dos procedimientos separados y los llamas consecutivamente?