ayuda!!!

imaz
16 de Marzo del 2004
Muy buenas!!

como puedo ejecutar esta sentencia??

select 'ALTER TABLE '|| table_name||' ADD(campo3 number(2));'
from user_tables

lo ejecuto pero no me modifica las tablas.
He intentado con un cursor y poner la instruccion execute y tampoco. es una txorrada pero no me acuerdo.

muchas gracias.

Mikel
16 de Marzo del 2004
¿No te sobra el SELECT delante del Alter Table?

Donostiatik agurrak !!!

Mikel

Angel
16 de Marzo del 2004
ALTER TABLE MyTable
ADD AddDate smalldatetime NULL

esta es la sintaxis de alter table....

imaz
16 de Marzo del 2004
Aupa!!
ya lo he conseguido, no hace falta que os rompais mas la cabeza, jeje.
Aqui esta el resultado.

declare
cursor c1 is
SELECT 'ALTER TABLE '||table_name||' ADD(XXX NUMBER(38))' sql_sentence
FROM USER_TABLES;

begin
for v_reg in c1 loop
dbms_output.put_line(v_reg.sql_sentence);
begin
execute immediate v_reg.sql_sentence;
exception
when others then
--puede que haya tablas con ese campo
dbms_output.put_line('La columna que se está agregando ya existe en la tabla');
end ;
end loop;
commit;
end;

Isa?
16 de Marzo del 2004
¿Cual es el motor de base de datos que utiliza?

jimaz
16 de Marzo del 2004
Perdona, Oracle.