miércoles, 28 de diciembre de 2011

Recuperativa Miercoles 28 de diciembre

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, 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

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;

viernes, 16 de diciembre de 2011

TABLAS CAMPOS

Propiedad(PK)-Arriendo(FK) numPropiedad
Cliente(PK)-Arriendo(FK) numCliente
Visita(PK)-Cliente(PK) numCliente
Propiedad(PK)-Visita(FK) numPropiedad
Propietario(PK)-Propiedad(FK) numPropietario
Empleado(PK)-Propiedad(FK) numEmpleado
Oficina(PK)-Empleado(FK) numOficina