lundi 27 juin 2011

PL/SQL Oracle Scanner tous les champs de toutes les tables

declare
myvar varchar2(1024);
i number;
myresult varchar2(1024);
begin
for t in (select t.* from all_tables t where t.table_name like 'MARESTRICTIONDETABLE%') loop
myvar := t.table_name;
dbms_output.put_line('table name = ' || myvar);

for u in (select u.* from all_tab_columns u where u.table_name = myvar) loop
dbms_output.put_line('column name = ' || u.column_name);
end loop;

end loop;
end;

Avant de lancer l'exécution de ce script, mettez une restriction en remplaçant MARESTRICTIONDETABLE.

Si vous ne voulez aucune restriction, on peut étendre le champs d'application à absolument toutes les tables d'une base de données Oracle en supprimant la clause WHERE suivante

where t.table_name like 'MARESTRICTIONDETABLE%'

Have Fun !