jueves, 27 de septiembre de 2012


--CREAR UN PROCEDIMIENTO ALMACENADO QUE
--PERMITA INGRESAR DATOS A LA TABLA PERSONA

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;

EXECUTE PROC_I_PERSONA ('00001','JUAN ALEJANDRO','ROSALES','CORONEL','M','452835245');

SELECT * FROM PERSONA;

--VALOR MAXIMO DEL CODIGO DE LA PERSONA

SELECT MAX(ID_PERSONA) FROM PERSONA ;

SELECT MAX(ID_PERSONA+1) FROM PERSONA ;

--FUNCION DE CONVERSION
SELECT NVL(MAX(ID_PERSONA),0)+1 FROM PERSONA ;

--RELLENAR CON CEROS CPOR LA IZQUIERDA
SELECT LPAD(NVL(MAX(ID_PERSONA),0)+1,5,0) FROM PERSONA ;


--PROCEDIMIENTO ALMACENADO PERMITE GENERA CODIGO AUTOMATICAMENTE
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;

EXECUTE PROC_II_PERSONA ('JUAN ALEJANDRO','ROSALES','CORONEL','M','452535245');


-----------------------------------------------------------------------------------------

--CREAR UN PROCEDIMIENTO ALMACENADO QUE NOS PERMITA INGRSAR SEXO ''m' y 'f'
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 VARCHAR2(1);

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;


EXECUTE PROC_III_PERSONA ('JUAN ALEJANDRO','ROSALES','CORONEL','m','452735845');
SELECT * FROM PERSONA;

----------------------------------------------------------------------------------------------

--CREAR UN PROCEDIMIENTOALAMCANADO QUE ME PERMITA BORRAR UNA FILA EN FUNCION DE CODIGOA

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;

EXECUTE PROC_IV_PERSONA ('00004')

-------------------------------------------------------------------------------------------

--CREAR UN PROCEDIMIENTO ALMACENADO QUE ME PERMITA ACTUALIZAR TODOS LOS CAMPOS EB FUNCION DEL CODIGO


CREATE OR REPLACE PROCEDURE PROC_IV_PERSONA(V_PERSONA_NOMBRES VARCHAR,
                                            V_PERSONA_APELL_PAT VARCHAR,
                                            V_PERSONA_APELL_MAT VARCHAR,
                                            V_PERSONA_SEXO VARCHAR2,
                                            V_PERSONA_DNI VARCHAR2 )AS

V_ID_PERSONA VARCHAR2(5);
V_SEXO_VALIDO VARCHAR2(1);                                          
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_IV_PERSONA;
SELECT * FROM PERSONA;
EXECUTE PROC_IV_PERSONA ('BRYAN CARLOS','DJSENSORIAL','RODRIGUEZ','m','485269524');

-----------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE PROC_VI_PERSONA(V_ID_PERSONA VARCHAR2)AS

BEGIN

DELETE FROM PERSONA
WHERE V_ID_PERSONA = ID_PERSONA;

END PROC_VI_PERSONA;

SELECT * FROM PERSONA;
EXECUTE PROC_VI_PERSONA ('00006')

-------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE PROC_VII_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

V_SEXO_VALIDO VARCHAR2(1);
BEGIN

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;


    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_SEXO_VALIDO,
        PERSONA_DNI = V_PERSONA_DNI
     
    WHERE ID_PERSONA=V_ID_PERSONA;


END PROC_VII_PERSONA;

SELECT * FROM PERSONA;
EXECUTE PROC_VII_PERSONA ('00001','BRYAN CARLOS','DJSENSORIAL','DLSENSORIAL','F','495869524');

-------------------------------------------------------------------------------------------------
CREATE TABLE EMPLEADO3 AS
SELECT * FROM EMPLOYEES
--WHERE '1' = '1'

-------------------------------------------------------------------------------------------------

CREATE TABLE EMPLEADO2 AS
SELECT * FROM EMPLOYEES
WHERE '1' = ''

------------------------------------
--BORRRA SIN ENVIARA A LA PAPELERA DE RECICLAJE
DROP TABLE EMPLEADO2 PURGE

------------------------------------------------
--BORRAR TODAS LOS DATOS DE UNA TABLA
DELETE FROM EMPLEADO3

------------------------------------------------
--LLENAR TODOS LOS DATOS DE UAN TABLA EN OTRA
INSERT INTO EMPLEADO3
SELECT * FROM EMPLOYEES

---------------------------------------------------
--MOSTRAR TOSAS LAS TABLAS Y VISTAS  DE HR
SELECT *
FROM TAB

--------------------------------------------------
--MOSTRAR TODAS LAS TABLAS DE HR
SELECT *
FROM TAB
WHERE TABTYPE = 'TABLE'

--MOSTRAR TOSAS LOS NOMBRES DE LAS TABLAS
SELECT TNAME
FROM TAB
WHERE TABTYPE = 'TABLE'

--DUPLICAR TODAS LAS TABLAS CON UNA A INICIAL
SELECT 'CREATE TABLE A' || TNAME || ' AS SELECT * FROM ' || TNAME || '; '
FROM TAB
WHERE TABTYPE = 'TABLE'

--BORRAR TODAS LAS TABLAS CREADAS
SELECT 'DROP TABLE A' || TNAME || ' PURGE; '
FROM TAB
WHERE TABTYPE = 'TABLE'
-------------------------------------------------------------------

SELECT 'DROP TABLE A' || TNAME || ' PURGE; '
FROM TAB
WHERE TABTYPE = 'TABLE'
AND TNAME LIKE 'A%'

0 comentarios:

Publicar un comentario

Copyright @2009