Problemas con un cursor

spitxfire
03 de Abril del 2006
Este cursor me da problemas y no estoy muy seguro de porque,, a ver si me podeis ayudar, lo q quiero es agregar una columna a todas las tablas q tiene un usuario.

El codigo es el sig:

DECLARE

V_TABLE VARCHAR2(30);

V_TEMP VARCHAR(1000);

CURSOR C_TABLE IS

SELECT TABLE_NAME FROM USER_TABLES;

BEGIN


OPEN C_TABLE;

LOOP

FETCH C_TABLE INTO V_TABLE;

IF C_TABLE%FOUND THEN



V_TEMP:='ALTER TABLE V_TABLE ADD ID_X VARCHAR(30)';

ELSE

EXIT;

END IF;
Execute Immediate v_Temp;


END LOOP;

CLOSE C_TABLE;

END;

Me pone la tabla o vista no existe, pero he comprobado la v_table y si q guarda los valores.

A ver si me podeis echar 1 cable, Muchas gracias!

Jor-El
03 de Abril del 2006
¿ y si en lugar de poner esto ?

V_TEMP:='ALTER TABLE V_TABLE ADD ID_X VARCHAR(30)';


¿ pones esto ?

V_TEMP:='ALTER TABLE '||V_TABLE||' ADD ID_X VARCHAR(30)';

spitxfire
03 de Abril del 2006
Muchisimas gracias!!! acabo de probarlo y era eso.