Problemas con un cursor
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!
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!
¿ 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)';
V_TEMP:='ALTER TABLE V_TABLE ADD ID_X VARCHAR(30)';
¿ pones esto ?
V_TEMP:='ALTER TABLE '||V_TABLE||' ADD ID_X VARCHAR(30)';
