jueves, 14 de junio de 2012

set serveroutput on
Create Table Cliente( --Creacion de la tabla cliente
 NumCliente varchar2(4) not null,
 Nombre varchar2(30) ,
 Apellido varchar2(30),
 Direccion varchar2(35),
 Telefono varchar2(15) ,
 TipoPref varchar2(25) ,
 MaxRent Float,
 Constraint PK_CLIENTE PRIMARY KEY (NumCliente)
 );

 --Ahora insertamos registros

 begin
 insert into cliente values('CR78' , 'Juan' , 'Kayser', 'Alameda Numero 23' , '9898765' , 'Dpto' , '100000');
 insert into cliente values('CR79' , 'Miguel' , 'Sepulveda', 'Mar de Drake N°69' , '69696969' , 'Casa' , '1000000');
 insert into cliente values('CR80' , 'Gerald Mauricio' , 'Caris', 'Bellavista N° 23' , '98765432' , 'Dpto' , '900000');
 insert into cliente values('CR81' , 'Enrique' , 'Mimó', 'San Ramon N°314' , '99999999' , 'Parcela' , '1000000');
 END;

 select *from Cliente; --Con este select se ve los ingresos a la Tabla Cliente

 ---Procedimiento Ver Cliente

 Create or Replace Procedure verCliente (pNumCliente varchar2)IS
   vNumCliente Cliente.numCliente%TYPE;
   vNombre Cliente.nombre%TYPE;
   vApellido Cliente.apellido%TYPE;
   BEGIN
     select numCliente, nombre, apellido
     into vNumCliente, vNombre, vApellido
     from Cliente
      where numCliente=pNumCliente;
      DBMS_OUTPUt.PUT_LINE('NumCliente : ' ||vNumCliente || ' Nombre : ' ||trim(vNombre) || ' Apellido : ' ||vApellido);
      Exception
         When no_data_found then
            DBMS_OUTPUT.PUT_LINE( ' NO SE ENCUENTRA EL CLIENTE ' || pNumCliente );
            END;
           
 ----EL PROCEDIMIENTO verCliente me compilo, pero me arroja un Warning....
 show errors;
 --Para invocar a un procedimiento:

 begin
    verCliente('CR79');
    END;
   
    show errors;

lunes, 4 de junio de 2012

Clase 02 de Junio Script Trigger Compra

create table Compra (
idCompra integer,
fecha date
);

alter table Compra
modify idCompra integer not null;

alter table Compra
add constraint PK_Compra primary key (idcompra);

Create table DetalleCompra(
idCompra integer,
idProducto integer,
cantidad integer
);

alter table DetalleCompra
add constraint fk_Detalle_Compra foreign key (idCompra)
referencing Compra (idcompra);

alter table DetalleCompra
add constraint fk_Detalle_Producto foreign key (idProducto)
referencing Producto (idProducto);


Create table Producto(
idProducto integer,
nombreProducto varchar2(30),
stockActual integer
);

alter table producto
add constraint pk_Producto primary key (idProducto);

create sequence sqCompra;

insert into compra values (sqCompra.nextval, sysdate);
insert into compra values (sqCompra.nextval, sysdate);
insert into compra values (sqCompra.nextval, sysdate);

select * from compra;

create sequence sqProducto
START WITH 10
INCREMENT BY 10;

insert into Producto values (sqProducto.nextval, 'Pantalla Led 60 "', 100);
insert into Producto values (sqProducto.nextval, 'HD 6TB', 1000);
insert into Producto values (sqProducto.nextval, 'Radio Sony xTr', 10);
insert into Producto values (sqProducto.nextval, 'Moto Kawasaky', 20);

select * from Producto
select * from Compra

insert into detalleCompra values (1, 10, 2);
insert into detalleCompra values (1, 40, 1);
insert into detalleCompra values (1, 50, 5);

Clase 02 de Junio Trigger

-- trigger 1er ejercicio diapo trigger

create or replace trigger tr_ActualizaStock
after insert on DetalleCompra
for each row
begin
  update Producto
  set stockActual = stockActual + :new.Cantidad
  where idProducto = :new.idProducto
end trActualizaStock;