Affichage des articles dont le libellé est pl/sql. Afficher tous les articles
Affichage des articles dont le libellé est pl/sql. Afficher tous les articles

vendredi 16 septembre 2011

Oracle PL/SQL Data Scanner Script v0.2

Cette version du script permet de scanner toutes les tables d'une base de données, toutes les colonnes de chaque table, et parcoure la première ligne de la table ; La valeur de chaque colonne de la première ligne est obtenue.


-- Oracle PL/SQL Data Scanner Script v0.2
-- By IO-ESG (09/2011)

declare
myvar varchar2(1024);
i number;
myresult varchar2(1024);
myval varchar2(1024);
nbrec number;
valeur varchar2(256);

begin
dbms_output.enable(500000);
for t in (select t.* from all_tables t where t.owner like 'OWNER') loop
myvar := t.table_name;
dbms_output.put_line('table name = ' || myvar);

begin
execute immediate ('select count(*) from ' || t.table_name)
into nbrec;
dbms_output.put_line(' Nb records = ' || nbrec);
exception
when others then
dbms_output.put_line(' *** exception count ***');
end;

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);

begin
execute immediate('select v.' || u.column_name || ' from ' || u.table_name || ' v')
into valeur;
exception
when others then
dbms_output.put_line(' *** exception value ***');
end;

dbms_output.put_line(' VALUE = ' || valeur);

end loop;
end loop;
end;

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 !