introducir confirmaciones durante la ejecucion
Hola a todos, necesito hacer un procedimiento para borrar tablas con sql dinamico.Esto lo he conseguido mediante un cursor, y execute inmediate.
Pero necesito que cada vez que se vaya a borrar una tabla se pida al usuario la confirmacion. es decir
que salga un mensaje y diga SI o No desea eliminar.
El usuario podra introducir la respuesta, y el programa continuara.
A ver si alguien me puede ayudar o darme una idea.muchas gracias
Pero necesito que cada vez que se vaya a borrar una tabla se pida al usuario la confirmacion. es decir
que salga un mensaje y diga SI o No desea eliminar.
El usuario podra introducir la respuesta, y el programa continuara.
A ver si alguien me puede ayudar o darme una idea.muchas gracias
A ver si esto te sirve de ayuda
set serveroutput on
accept tabla prompt "Nombre de la tabla a borrar "
accept borrar prompt "¿Desea borrar la &tabla? (S/N) "
declare
vDel varchar2(1) := '&borrar';
vTabla varchar2(50) := '&tabla';
vSqlVal varchar2(255);
vSqlDel varchar2(255);
vdc number(1);
begin
if vDel = 'S' then
vSqlVal := 'select 1 from tabs where table_name = upper('''||vTabla||''')';
dbms_output.put_line('Sentence '||vSqlVal);
execute immediate vSqlVal into vdc;
vSqlDel := 'delete '||vTabla;
execute immediate vSqlDel;
end if;
exception
when no_data_found then
dbms_output.put_line('La tabla '||vTabla||' no existe.');
when others then
dbms_output.put_line('Error '||sqlerrm);
end;
/
set serveroutput on
accept tabla prompt "Nombre de la tabla a borrar "
accept borrar prompt "¿Desea borrar la &tabla? (S/N) "
declare
vDel varchar2(1) := '&borrar';
vTabla varchar2(50) := '&tabla';
vSqlVal varchar2(255);
vSqlDel varchar2(255);
vdc number(1);
begin
if vDel = 'S' then
vSqlVal := 'select 1 from tabs where table_name = upper('''||vTabla||''')';
dbms_output.put_line('Sentence '||vSqlVal);
execute immediate vSqlVal into vdc;
vSqlDel := 'delete '||vTabla;
execute immediate vSqlDel;
end if;
exception
when no_data_found then
dbms_output.put_line('La tabla '||vTabla||' no existe.');
when others then
dbms_output.put_line('Error '||sqlerrm);
end;
/
Estoy en ello,me da en la nariz que tu eres del CES Felipe II ejejejejejeee.Si eres de ahip preguntaselo mañana al CHEMA :PPPPPPPPPPP.Un saludo
