fecha clases: 21 de Dic
autor: Cristóbal Langer F.
proxima minuta: Daniel Berrios
*** CLASE CURSORES ***
ESTRUCTURA DE UN CURSOR
declare
.....
.....
.....
select
Begin
OPEN micursor;
-- inicio del cursor
LOOP;
Fetch micursor into v1,v2....vn
-- extrae un registro desde el cursor
exit when micursor%notfound
-- sale del cursor si no encuentra ningun registro en la posicion
que busca
DBMS_output_put_line (......)
-- imprime en pantalla
ENDLOOP
CLOSE
--cierre del cursor
Expection
en el momento que hay un error , lo captura, y tiene la
End
--Tarea de cursor
pagina 28 y 29 de la powerpoint Oracle - 02 - PL-SQL
Actividad : Modifique el cursor aplicando paso de parámetros, y
publique en su blog.
RECORRER
--identifica las tablas que existe en esta cuenta
select distinct tablas.owner, tablas.table_name
from all_tables tablas
where tablas.owner = 'HR';
--identifica de cada tabla las columnas que tienes
select distinct col.column_name
from all_tab_columns col
where upper(col.owner) = 'HR'
and lower(col.table_name) = 'employees';
***CODIGO CORREGIDO Marcos Gonzalo Vargas Salas***
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 = '158196506';
/* 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;
--Ejercicio en clases
select *
from all_tables
select owner, table_name
from all_tables
where owner = '157375849'
select owner from all_tab_columns
Ver power point subido
oracle 03 - variavles pl-sql
*** FUNCIONES ***
(recibe parametros y returna un resultado o valor)
ejemplo: select UPPER('hola') from DUAL
select user from dual;
--sysdate(fecha)
select to_char(sysdate,'day') from dual
--muestra el dia de la semana con mas caracteres
select '***'|| to_char(sysdate,'day') || '***' from dual
select to_char(to_date('03-09-1983','dd-mm-yyyy'),'day') from dual;
select to_char(to_date('03-09-1983','dd-mm-yyyy'),'DAY') from dual;
--buscar en google to_char
ingresar en el blog funciones que tengan que ver con fecha
en mejores practicas usar %type
EJERCICIO (genera 10 registros)
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;
pregunta de prueba
funciones de conversion; TO_CHAR, TO_DAY, TO_NUMBER
--encontrar un caracter especial
select instr('hola mundo','o',1,2) from dual
--agrega un mes a la variable
select add_months (sysdate,1) from dual
*** Profesor se compromete a corregir la prueba porque se encontro
algunos errores en la corrección. ***
se recuerda que el proximo miercoles 28 se hara la clase
correspondiente al viernes 30 dic
autor: Cristóbal Langer F.
proxima minuta: Daniel Berrios
*** CLASE CURSORES ***
ESTRUCTURA DE UN CURSOR
declare
.....
.....
.....
select
Begin
OPEN micursor;
-- inicio del cursor
LOOP;
Fetch micursor into v1,v2....vn
-- extrae un registro desde el cursor
exit when micursor%notfound
-- sale del cursor si no encuentra ningun registro en la posicion
que busca
DBMS_output_put_line (......)
-- imprime en pantalla
ENDLOOP
CLOSE
--cierre del cursor
Expection
en el momento que hay un error , lo captura, y tiene la
End
--Tarea de cursor
pagina 28 y 29 de la powerpoint Oracle - 02 - PL-SQL
Actividad : Modifique el cursor aplicando paso de parámetros, y
publique en su blog.
RECORRER
--identifica las tablas que existe en esta cuenta
select distinct tablas.owner, tablas.table_name
from all_tables tablas
where tablas.owner = 'HR';
--identifica de cada tabla las columnas que tienes
select distinct col.column_name
from all_tab_columns col
where upper(col.owner) = 'HR'
and lower(col.table_name) = 'employees';
***CODIGO CORREGIDO Marcos Gonzalo Vargas Salas***
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 = '158196506';
/* 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;
--Ejercicio en clases
select *
from all_tables
select owner, table_name
from all_tables
where owner = '157375849'
select owner from all_tab_columns
Ver power point subido
oracle 03 - variavles pl-sql
*** FUNCIONES ***
(recibe parametros y returna un resultado o valor)
ejemplo: select UPPER('hola') from DUAL
select user from dual;
--sysdate(fecha)
select to_char(sysdate,'day') from dual
--muestra el dia de la semana con mas caracteres
select '***'|| to_char(sysdate,'day') || '***' from dual
select to_char(to_date('03-09-1983','dd-mm-yyyy'),'day') from dual;
select to_char(to_date('03-09-1983','dd-mm-yyyy'),'DAY') from dual;
--buscar en google to_char
ingresar en el blog funciones que tengan que ver con fecha
en mejores practicas usar %type
EJERCICIO (genera 10 registros)
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;
pregunta de prueba
funciones de conversion; TO_CHAR, TO_DAY, TO_NUMBER
--encontrar un caracter especial
select instr('hola mundo','o',1,2) from dual
--agrega un mes a la variable
select add_months (sysdate,1) from dual
*** Profesor se compromete a corregir la prueba porque se encontro
algunos errores en la corrección. ***
se recuerda que el proximo miercoles 28 se hara la clase
correspondiente al viernes 30 dic
No hay comentarios:
Publicar un comentario