Sunteți pe pagina 1din 8

Trabajo de procedimientos almacenados

Ricardo Castañeda Ramírez

Procedimiento crear agente

vagente number;

begin

vagente := 0;

select count (*) into vagente from agente where idagente = newidagente;

if vagente = 0 then
insert into agente values (newidagente, newceludaa, newnombre, newrango, newidpuesto);

end if;

end;

Procedimiento crear norma

create or replace NONEDITIONABLE PROCEDURE crearnorma (newidn in number, newdescripcion


in VARCHAR2, newvalornorma in number)

is

--declarar las variables

total number;

begin

total := 0;
select count(*) into total from normasdet where idn = newidn;

if total = 0 then
insert into normasdet values (newidn, newdescripcion, newvalornorma);

end if;

end;
begin

crearnorma (1, 'No portar chaleco', 300000);


crearnorma (2, 'No portar documentacion', 300000);

end;

Procedimiento borrar norma

create or replace NONEDITIONABLE Procedure delete_norma (delidnorma in number)

AS

BEGIN
DELETE FROM normasdet
WHERE idn = delidnorma;
END;

-------Llamamos el procedimiento delete_norma--------


begin

delete_norma (2);

end;

Procedimiento leer norma

create or replace NONEDITIONABLE Procedure leernorma (leeridnorma in number)

is

norma normasdet%ROWTYPE;

BEGIN

SELECT * INTO norma FROM normasdet


WHERE idnorma = leeridnorma;

dbms_output.put_line( norma.idnorma || ', descripcion: ' || norma.descripcion || ', ley numero:' ||


norma.numeronorma );
END;

set serveroutput on;

begin

leernorma (102);

end;

Procedimiento aumentar valor norma de transito

create or replace NONEDITIONABLE PROCEDURE aumentarnormasdet (aidn in number,


aporcentaje in number default 10)

AS

begin

UPDATE normasdet set valornorma = valornorma + (valornorma*aporcentaje/100)


where idn=aidn;

end;

begin

aumentarnormasdet (2);
commit;

end;

Procedimiento cambio de puesto agente de transito

create or replace NONEDITIONABLE PROCEDURE cambiopuestoagente (newidagente in varchar2,


newpuestocontrol in varchar2)

AS

begin

UPDATE agente set idpuesto = newpuestocontrol


where idagente=newidagente;
end;
Script creación de tablas base de datos transito

CREATE table PROPIETARIO(


CEDULAP NUMBER,
NOMBRE VARCHAR2 (50),
CIUDAD VARCHAR2 (50),
CONSTRAINT PRO_CEDULAP_PK
PRIMARY KEY (CEDULAP)
);

CREATE table ZONA(


IDZONA NUMBER,
UBICACION VARCHAR2 (50),
CONSTRAINT PRO_IDZONA_PK
PRIMARY KEY (IDZONA)
);

CREATE table AUDIENCIA(


IDAUDIENCIA NUMBER,
LUGAR VARCHAR2 (50),
FECHA DATE,
HORA NUMBER,
CONSTRAINT PRO_IDAUDIENCIA_PK
PRIMARY KEY (IDAUDIENCIA)
);

CREATE table OFICINAGOB(


IDOFICINAGOB NUMBER,
VALORVEHICULO NUMBER,
NPOLIZA VARCHAR2 (20),
NUMPLACA VARCHAR2 (6),
UBICACION VARCHAR2 (50),
CONSTRAINT PRO_IDOFICINAGOB_PK
PRIMARY KEY (IDOFICINAGOB)
);

CREATE table VEHICULO(


NUMPLACA VARCHAR2 (6),
MARCA VARCHAR2 (20),
MODELO VARCHAR2 (20),
MOTOR VARCHAR2 (20),
ANIO DATE,
IDOFICINAGOB NUMBER,
CEDULAP NUMBER,
CONSTRAINT PRO_NUMPLACA_PK
PRIMARY KEY (NUMPLACA)
);
ALTER TABLE VEHICULO
ADD constraint FK_VEHICULO
foreign key (IDOFICINAGOB)
references OFICINAGOB (IDOFICINAGOB);

ALTER TABLE VEHICULO


ADD constraint FK_PROPIETARIO
foreign key (CEDULAP)
references PROPIETARIO (CEDULAP);

CREATE table PUESTO_DE_CONTROL(


IDPUESTO VARCHAR2 (6),
UBICACION VARCHAR2 (20),
IDZONA NUMBER,
CONSTRAINT PRO_IDPUESTO_PK
PRIMARY KEY (IDPUESTO)
);
ALTER TABLE PUESTO_DE_CONTROL
ADD constraint FK_ZONA
foreign key (IDZONA)
references ZONA (IDZONA);

CREATE table AGENTE(


IDAGENTE VARCHAR2 (20),
CEDULAA NUMBER,
NOMBRE VARCHAR2 (20),
RANGO VARCHAR2 (20),
IDPUESTO VARCHAR2 (6),
CONSTRAINT PRO_IDAGENTE_PK
PRIMARY KEY (IDAGENTE)
);
ALTER TABLE AGENTE
ADD constraint FK_PUESTO
foreign key (IDPUESTO)
references PUESTO_DE_CONTROL (IDPUESTO);
CREATE table INFRACCION(
IDINFRACCION VARCHAR2 (20),
IDAGENTE VARCHAR2 (20),
NUMPLACA VARCHAR2 (6),
VALORMULTA NUMBER,
FECHA DATE,
IDNORMA NUMBER,
HORA NUMBER,
CONSTRAINT PRO_IDINFRACCION_PK
PRIMARY KEY (IDINFRACCION)
);

ALTER TABLE INFRACCION


ADD constraint FK_IDAGENTE
foreign key (IDAGENTE)
references AGENTE (IDAGENTE);

ALTER TABLE INFRACCION


ADD constraint FK_NUMPLACA
foreign key (NUMPLACA)
references VEHICULO (NUMPLACA);

ALTER TABLE INFRACCION


ADD constraint FK_IDNORMA
foreign key (IDNORMA)
references NORMASDET (IDNORMA);

CREATE table ACCIDENTE(


IDACCIDENTE VARCHAR2 (20),
NUMPLACA VARCHAR2 (6),
IDAGENTE VARCHAR2 (20),
FECHA DATE,
HORA NUMBER,
DESCRIPCION VARCHAR (100),
CONSTRAINT PRO_ACCIDENTE_PK
PRIMARY KEY (IDACCIDENTE)
);

ALTER TABLE ACCIDENTE


ADD constraint FK_IDAGENTE1
foreign key (IDAGENTE)
references AGENTE (IDAGENTE);
ALTER TABLE ACCIDENTE
ADD constraint FK_NUMPLACA1
foreign key (NUMPLACA)
references VEHICULO (NUMPLACA);

CREATE table ACTA(


IDACTA VARCHAR2 (20),
IDACCIDENTE VARCHAR2 (20),
IDAGENTE VARCHAR2 (20),
IDAUDIENCIA NUMBER,
IDZONA NUMBER,
FECHA DATE,
HORA NUMBER,
CONSTRAINT PRO_IDACTA_PK
PRIMARY KEY (IDACTA)
);

ALTER TABLE ACTA


ADD constraint FK_IDAGENTE2
foreign key (IDAGENTE)
references AGENTE (IDAGENTE);

ALTER TABLE ACTA


ADD constraint FK_ZONA2
foreign key (IDZONA)
references ZONA (IDZONA);

ALTER TABLE ACTA


ADD constraint FK_IDAUDIENCIA2
foreign key (IDAUDIENCIA)
references AUDIENCIA (IDAUDIENCIA);

ALTER TABLE ACTA


ADD constraint FK_IDACCIDENTE2
foreign key (IDACCIDENTE)
references ACCIDENTE (IDACCIDENTE);
Imágenes

S-ar putea să vă placă și