miércoles, 21 de diciembre de 2011

Clase miércoles 21/12/2011

CURSORES BIEN EXPLICADO ---> http://www.desarrolloweb.com/articulos/cursores-pl-sql-I.html
--atributos que nos interesan
ALL_TABLES
(owner)
(table_name)
(Tabid)
select owner, table_name
from all_tables
where owner = '154345272'

--atributos que nos interesan
ALL_TAB_COLUMNS
(column_name)
(owner)
(table_name)

Select distinct col.column_name
from all_tab_columns col
Where upper(owner)='154345272'

/*obtener todas las tablas, columnas y nombre owner*/

DECLARE
vPropietario varchar2(40);
vNombreTabla varchar2(40);
vNombreColumna varchar2(100);

/* Primer cursor */
cursor obtieneTablas is
select distinct t.owner, t.table_name
from all_tables t
where t.owner = '154345272';

/* Segundo cursor */
cursor obtieneColumnas is
select distinct c.column_name
from all_tab_columns c
where c.owner = vPropietario
and c.table_name = vNombreTabla;

begin
open obtieneTablas;
dbms_output.put_line('Abriendo Cursor - obtieneTablas');
loop fetch obtieneTablas into vPropietario, vNombreTabla;
exit when obtieneTablas%NOTFOUND;
dbms_output.put_line('Tabla : '||vPropietario||'.'||
vNombreTabla);
open obtieneColumnas;
loop fetch obtieneColumnas into vNombreColumna;
exit when obtieneColumnas%NOTFOUND;
dbms_output.put_line('=>'||vNombreTabla||'.'||
vNombreColumna);
end loop;
close obtieneColumnas;
end loop;
close obtieneTablas;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'Se ha detectado un error - '||
SQLCODE||' -ERROR- '||SQLERRM);
end;

*******************************************
select owner, table_name
from all_tables
where owner = '154345272'


Select distinct col.column_name
from all_tab_columns col
Where upper(owner)='154345272'

Select owner,Table_name,Column_name
from all_tab_columns
Where upper(owner)='154345272'


/*obtener todas las tablas, columnas y nombre owner*/

DECLARE
vPropietario varchar2(40);
vNombreTabla varchar2(40);
vNombreColumna varchar2(100);

/* Primer cursor */
cursor obtieneTablas is
select distinct t.owner, t.table_name
from all_tables t
where t.owner = '154345272';

/* Segundo cursor */
cursor obtieneColumnas is
select distinct c.column_name
from all_tab_columns c
where c.owner = vPropietario
and c.table_name = vNombreTabla;

begin
open obtieneTablas;
dbms_output.put_line('Abriendo Cursor - obtieneTablas');
loop fetch obtieneTablas into vPropietario, vNombreTabla;
exit when obtieneTablas%NOTFOUND;
dbms_output.put_line('Tabla : '||vPropietario||'.'||
vNombreTabla);
open obtieneColumnas;
loop fetch obtieneColumnas into vNombreColumna;
exit when obtieneColumnas%NOTFOUND;
dbms_output.put_line('=>'||vNombreTabla||'.'||
vNombreColumna);
end loop;
close obtieneColumnas;
end loop;
close obtieneTablas;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'Se ha detectado un error - '||
SQLCODE||' -ERROR- '||SQLERRM);
end;


--FUNCIONES
select sysdate from dual;

select to_char (to_date('20/09/1982','dd-mm-yyyy'),'DAY') from dual;

select '***'|| to_char (to_date('20/09/1982','dd-mm-yyyy'),'DAY')||'***' from dual;

--publicar 2 o 3 ejemplos de TO_CHAR con TO_DATE

-- RECORDANDO A UTILIZAR EL %TYPE
-- DECLARAR TIPO RECORD

select a,b into va,vb;

TYPE mitiporecord is RECORD
(
va varchar2(2),
vb int
);


create table tx (x int,y varchar(5));

insert into tx
select rownum,trunc(dbms_random.value(1,99999))
from dual
connect by rownum <= 10;

select * from tx;

--probar de la segunda letra
select instr ('Hola mundo','o',1,2) from dual
--probar de la tercera letra
select instr ('Hola mundo','o',3,2) from dual
--agregar un mes
Select add_months (sysdate,1) from dual
--dia de la semana
Select to_char (add_months (sysdate,-1),'day') from dual

No hay comentarios: