Actualización en varias tablas

Quisiera pedirte un favor y me ayudaras... Estoy aprendiendo oracle y empiezo a manupilar algunos registros en mi base de datos, tengo varias tablas las cuales tienen un campo en común que es "claacc" de tipo varchar, la idea es hacer esta misma actualización en todas las tablas ya que de otra forma tendría que hacer lo mismo con cada tabla, ojala me pudieras orientar como puedo hacerlo y no demorarme mucho, ya que este dato para mi es muy cambiante.
Esta es la instrucción que utilizo para cada tabla, te comento que tengo alrededor de 15 tablas. Estoy manejando Toad for oracle 8.5
UPDATE f06rm SET claacc = 'CAP01002-002' WHERE claacc = 'CAP01000-001'

1 respuesta

Respuesta
1
Podrías hacer algo como esto
Declare
  cursor t is select table_name from user_tables where table_name in ('tabla1','tabla2'...);
begin
 for t1 in t loop
  execute immediate 'update '|| e1.table_name || 'set claacc=''cap01002-002'''|| '  where claacc='cap01000-001''';
end loop;
commit
exception when others then
rollback;
end;
Hola Experto, buenas noches nuevamente, solo quisiera pedirte me despejaras una duda con respecto a la linea siguiente:
cursor t is select table_name from user_tables where table_name in ('tabla1','tabla2'...);
Cual seria la referencia de mis tablas para: cursor t is select (table_name)
y la de (user_tables)
En ('tabla1','tabla2'...); me queda claro que se refiere las 15 tablas que tengo, desde F01RM ... a F15RM
disculpa mi pregunta trato de entender la sintaxis...
Te explico cuando defino
cursor t is select table_name from user_tables where table_name in (tablas)
Estoy declarando un cursor, para aclarar lo que es un cursor es un apuntador a un área de contexto de donde queremos traer nuestra información con el cursor que esta definido sobre user_tables quiere decir que va a traer todas las tablas que tengas creadoas con tu usuario la tabla user_tables te da información sobre las tablas que tienes creada en tu esquema es por eso que utilice es tabla hay otra tabla que se llama dba_tables pero para acceder a ella depende si tienes permisos para hacerlo básicamente es ese es un select que trae las tablas que tienes creadas en tu esquema el in (tables) como comprendiste que para que solo te traiga las tablas que necesitas y no todas con el fin de recorrer el cursor y realizar la actualización user_tables como te mencione es una tabla del diccionario de datos de oracle que te brnda información sobre las tablas que tienes creadas en tu esquema si me hice entender.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas