Se revisa las sentiencias de next_day
select next_day(sysdate, 'lunes')from dual
ademas
select chr(12) from dual
Concatenar caracteres
select ('hola''Mundo') from dual
Agregar caracteres a la derecha o a la izquierda con LPAD y RPAD
select lpad('hola',20,'+') from dual
resultado= ++++++++++++++++hola
Replace
select replace('El profe es vacan', 'v', 'b')from dual
Resultado= 'El profe es bacan'
substr
select substr('el galeon español', 4, 6)from dual
resultado= 'galeon'
instr (NO ENTENDI LO QUE HACE)
select instr('corporate floor', 'or', 3, 2)from dual
resultado= 14
Piso y cielo (floor, ceil) aproxima hacia arriba o hacia abajo
select ceil('3,58') from dual
resultado= 4
select floor('3,58') from dual
resultado=3
calcular potencia
select power(2,5)from dual
da el resultado de 2 elevado a 5 osea 32
diferencia entre round y trunc
select round(2.27, 1)from dual
resultado= 2.3
select trunc(2.27, 1)from dual
resultado= 2.2
Funcion case para seleccionar entre alternativas
select salario, case
when salario <100000 then 'Reguleque'
when salario >300000 then 'Super'
else 'Esta bien'
end
from empleado
se crea una funcion para identificar si un numero es par o impar
create FUNCTION paroimpar (pnumero int)
return varchar2
is
vtexto varchar2(5);
begin
if mod(pnumero,2)=0 then
vtexto:='Par';
else
vtexto:='Impar';
end if;
return vtexto;
end paroimpar;
miércoles, 28 de diciembre de 2011
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
--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
sábado, 17 de diciembre de 2011
Clase Sabado 17-12-2011
declare
begin
exception
end
vtipo propiedad.tipo%type
dbms_output.put_line( );
select nombre, sexo
from empleado
declare
vnombre empleado.nombre%type;
vsexo empleado.sexo%type;
vtexto varchar(25);
cursor micursor is
[select nombre, sexo from empleado]
begin
open micursor;
loop
fetch micursor into vnombre, vsexo;
exit when micursor%notfound
if
vsexo='M' then
vtexto='Hombre'
elsif
vsexo='F' then
vtexto='Mujer'
else
vtexto='Ambiguo'
endif
dbms_output.putline(vnombre ││ 'ø' ││ vsexo 'ø' ││ vtexto);
end loop;
close micursor
Recuperacion Sabado 17
Se reviso fechas de proxima prueba y examen
sababo 7 de enero catedra2
sabado 14 de enero examen
se continua con la clase normal...
CURSORES
Declare
vgenero varchar2(10);
vnombre empleado.nombre%type;
vsexo empleado.sexo%type;
cursor listageneroempleado is
select nombre, sexo from empleado;
Begin
open listageneroempleado;
loop
fetch listageneroempleado INTO vnombre, vsexo;
exit when listageneroempleado%notfound
if sexo='M' then
vgenero='Hombre';
else if sexo='F' then
vgenero='Mujer';
else
vgenero='Ambiguo';
end if;
DBMS_Output.put_line(vnombre' 'vsexo' 'vgenero);
End loop;
close listageneroempleado;
END;
sababo 7 de enero catedra2
sabado 14 de enero examen
se continua con la clase normal...
CURSORES
Declare
vgenero varchar2(10);
vnombre empleado.nombre%type;
vsexo empleado.sexo%type;
cursor listageneroempleado is
select nombre, sexo from empleado;
Begin
open listageneroempleado;
loop
fetch listageneroempleado INTO vnombre, vsexo;
exit when listageneroempleado%notfound
if sexo='M' then
vgenero='Hombre';
else if sexo='F' then
vgenero='Mujer';
else
vgenero='Ambiguo';
end if;
DBMS_Output.put_line(vnombre' 'vsexo' 'vgenero);
End loop;
close listageneroempleado;
END;
viernes, 16 de diciembre de 2011
Suscribirse a:
Entradas (Atom)