lunes, 2 de mayo de 2011

create view PropiedadesPorEmpleado as
select nombre, apellido, count (numPropiedad)as TotalPropiedades
from empleado e, propiedad p
where e.numempleado = p.numempleado
group by nombre, apellido
order by count (numPropiedad) DESC, nombre,apellido


select *
from PropiedadesPorEmpleado


Create table T4 (a Integer, b char (10));
Create table T5 (c char(10),d Integer);

create trigger trig1
after insert on T4
referencing new as newRow
for each row
when (newrow.a <= 10)
begin
INSERT INTO T5 VALUES(:newRow.b, :newRow.a);
end trig1;

begin
insert into T4 values(11,'k');

select * from T5


CREATE or replace TRIGGER TopeDeManejoPropiedadEmpleado
BEFORE INSERT OR UPDATE ON PROPIEDAD
FOR EACH ROW
DECLARE
vcontP Integer;
BEGIN
SELECT COUNT(*) INTO vcontP
FROM PROPIEDAD
WHERE numEmpleado= :new.numEmpleado;
IF vcontP = 3 then
Raise_application_error(-20999, 'Empleado '|| :new.numEmpleado|| ' ya administra 3 propiedades');
END IF;
END

begin
insert into PROPIEDAD values('KM14','16 Holhead','Aberdeem','AB7 5SU','Casa','6','650','C046','SL21');
insert into PROPIEDAD values('PG4A' ,'6 Lawrence St','Glasgow','G119QX','Departamento','3','350','C040','SA9');
insert into PROPIEDAD values('PG36','2 Manor Rd','Glasgow','G114QX','Departamento','3','375','C093','SA9');
insert into PROPIEDAD values('PG21','AV. Matta 150','Santiago','G12','Casa','5','600','C087','SG5' );
insert into PROPIEDAD values('PR01','Macul 120 ','Santaigo','G129AX','Departamento','4','450','C093','SA8');
end

DROP TABLE PROPIEDAD
SELECT *
FROM PROPIEDAD
DESC PROPIEDAD
DELETE TABLE PROPIEDAD
Delete From PROPIEDAD


Create or replace procedure InsertarPropiedades
is
begin
insert into PROPIEDAD values ('PR01','Macul 120 ','Santaigo','G129AX','Departamento','4','450','C093','SA8');
Exception
when others then
dbms_output.put_line('Intena asiganr mas de una propiedad');
end

begin
InsertarPropiedades;
end

No hay comentarios.:

Publicar un comentario