miércoles, 26 de septiembre de 2012
CREATE TABLE PERSONA (
ID_PERSONA VARCHAR2(5) NOT NULL,
PERSONA_NOMBRES VARCHAR2(20) NOT NULL,
PERSONA_APELL_PAT VARCHAR2(20) NOT NULL,
PERSONA_APELL_MAT VARCHAR2(20),
PERSONA_SEXO VARCHAR2(1) NOT NULL,
PERSONA_DNI VARCHAR2(12) NOT NULL,
CONSTRAINT PK_PERSONA PRIMARY KEY (ID_PERSONA) ENABLE );
ALTER TABLE PERSONA ADD CONSTRAINT UNQ_PERSONA_DNI UNIQUE (PERSONA_DNI) ENABLE;
ALTER TABLE PERSONA ADD CONSTRAINT CHK_PERSONA_SEXO CHECK (PERSONA_SEXO IN ('M', 'F')) ENABLE;
--INSERT INTO VALUES ('01',)
CREATE OR REPLACE PROCEDURE PROC_I_PERSONA (V_ID_PERSONA VARCHAR2,
V_PERSONA_NOMBRES VARCHAR2,
V_PERSONA_APELL_PAT VARCHAR2,
V_PERSONA_APELL_MAT VARCHAR2,
V_PERSONA_SEXO VARCHAR2,
V_PERSONA_DNI VARCHAR2) AS
BEGIN
INSERT INTO PERSONA VALUES (V_ID_PERSONA,
V_PERSONA_NOMBRES,
V_PERSONA_APELL_PAT,
V_PERSONA_APELL_MAT,
V_PERSONA_SEXO,
V_PERSONA_DNI);
END PROC_I_PERSONA;
------------------------------------------------------------------------------------------------
SELECT LPAD(MAX(ID_PERSONA) + 1,5,'0')
FROM PERSONA:
SELECT LPAD((NVL(MAX(ID_PERSONA) , 0) + 1).5.'0') INTO V_ID_PERSONA
FROM PERSONA;
CREATE OR REPLACE PROCEDURE PROC_II_PERSONA (V_PERSONA_NOMBRES VARCHAR2,
V_PERSONA_APELL_PAT VARCHAR2,
V_PERSONA_APELL_MAT VARCHAR2,
V_PERSONA_SEXO VARCHAR2,
V_PERSONA_DNI VARCHAR2) AS
V_ID_PERSONA VARCHAR2(5);
BEGIN
SELECT LPAD((NVL(MAX(ID_PERSONA) , 0) + 1),5,'0') INTO V_ID_PERSONA
FROM PERSONA;
INSERT INTO PERSONA VALUES (V_ID_PERSONA,
V_PERSONA_NOMBRES,
V_PERSONA_APELL_PAT,
V_PERSONA_APELL_MAT,
V_PERSONA_SEXO,
V_PERSONA_DNI);
END PROC_II_PERSONA;
select * from PERSONA;
----------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE PROC_III_PERSONA (V_PERSONA_NOMBRES VARCHAR2,
V_PERSONA_APELL_PAT VARCHAR2,
V_PERSONA_APELL_MAT VARCHAR2,
V_PERSONA_SEXO VARCHAR2,
V_PERSONA_DNI VARCHAR2) AS
V_ID_PERSONA VARCHAR2(5);
V_SEXO_VALIDO VARCHAR(2);
BEGIN
SELECT LPAD((NVL(MAX(ID_PERSONA) , 0) + 1),5,'0') INTO V_ID_PERSONA
FROM PERSONA;
IF (V_PERSONA_SEXO ='m') THEN
V_SEXO_VALIDO := 'M';
END IF;
IF (V_PERSONA_SEXO ='M') THEN
V_SEXO_VALIDO := V_PERSONA_SEXO ;
END IF;
IF (V_PERSONA_SEXO ='f') THEN
V_SEXO_VALIDO :='F';
END IF;
IF (V_PERSONA_SEXO ='F') THEN
V_SEXO_VALIDO := V_PERSONA_SEXO ;
END IF;
INSERT INTO PERSONA VALUES (V_ID_PERSONA,
V_PERSONA_NOMBRES,
V_PERSONA_APELL_PAT,
V_PERSONA_APELL_MAT,
V_SEXO_VALIDO,
V_PERSONA_DNI);
END PROC_III_PERSONA;
-------------------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE PROC_IV_PERSONA (V_ID_PERSONA VARCHAR2) AS
BEGIN
DELETE FROM PERSONA
WHERE ID_PERSONA = V_ID_PERSONA;
END PROC_IV_PERSONA;
CREATE OR REPLACE PROCEDURE PROC_V_PERSONA (V_ID_PERSONA VARCHAR2,
V_PERSONA_NOMBRES VARCHAR2,
V_PERSONA_APELL_PAT VARCHAR2,
V_PERSONA_APELL_MAT VARCHAR2,
V_PERSONA_SEXO VARCHAR2,
V_PERSONA_DNI VARCHAR2 ) AS
BEGIN
UPDATE PERSONA
SET PERSONA_NOMBRES = V_PERSONA_NOMBRES,
PERSONA_APELL_PAT = V_PERSONA_APELL_PAT,
PERSONA_APELL_MAT = V_PERSONA_APELL_MAT,
PERSONA_SEXO = V_PERSONA_SEXO,
PERSONA_DNI = V_PERSONA_DNI
WHERE ID_PERSONA = V_ID_PERSONA;
END PROC_V_PERSONA;
Suscribirse a:
Enviar comentarios (Atom)

0 comentarios:
Publicar un comentario