miércoles, 7 de septiembre de 2011

Clase del 06 de septiembre

En esta clase Declaramos 2 Cursores, uno de ellos recibia el atributo del otro
y ademas le incluimos un contador al segundo cursor.

DECLARE
CURSOR crListaAtributos(pNombreTabla varchar2) is
SELECT column_name ,DATA_TYPE
FROM all_tab_columns
WHERE table_name = pNombreTabla;

CURSOR crListaTablas is
SELECT distinct tablas.table_name
FROM all_tables tablas
WHERE table_name not like '%$%'
AND upper(owner) not like '%SYS%';
vNombreTabla all_tables.table_name%type;
vAtributoTabla all_tab_columns.table_name%type;
vTipoDato all_tab_columns.DATA_TYPE%type;
contadorAtributos integer;
BEGIN
OPEN crListaTablas;
loop
FETCH crListaTablas into vNombreTabla;
exit when crListaTablas%notfound;
dbms_output.put_line('•••••••••••••••••••••••••••••••••••');
dbms_output.put_line(vNombreTabla);
dbms_output.put_line('------------------------------------------');

OPEN crListaAtributos(vNombreTabla);
contadorAtributos := 0;
loop
FETCH crListaAtributos into vAtributoTabla, vTipoDato;
exit when crListaAtributos%notfound;
dbms_output.put_line(vAtributoTabla||' *'||vTipoDato);
contadorAtributos := (contadorAtributos+1);
end loop;
dbms_output.put_line('------------------------------------------');
dbms_output.put_line('TOTAL ATRIBUTOS :'||contadorAtributos);
CLOSE crListaAtributos;
end loop;
CLOSE crListaTablas;
end;

No hay comentarios:

Publicar un comentario