Sie sind auf Seite 1von 5

/*-- verificación de tablas*/

SELECT * FROM USER_OBJECTS;

/*-dar permiso para poder modificar tablas--*/

ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;

/*-creación usuario en la base Db_prueba1-*/

CREATE USER MARCO IDENTIFIED BY "123456";


GRANT DBA TO MARCO;
GRANT CONNECT TO MARCO;
/*-creación de tabla USUARIO-*/

CREATE TABLE GSC_USUARIO (


USR_ID NUMBER,
USR_LOGIN VARCHAR2(50),
USR_CLAVE VARCHAR2(50)
);
/*-INGRESANDO DATOS A LA TABLA USUARIO-*/

INSERT INTO GSC_USUARIO(USR_ID,USR_LOGIN,USR_CLAVE) VALUES (1,'marco','123456');


INSERT INTO GSC_USUARIO(USR_ID,USR_LOGIN,USR_CLAVE) VALUES (2,'fabi','123456');
COMMIT;
/*-VERIFICANDO DATOS EN LA TABLA USUARIO-*/

SELECT * FROM GSC_USUARIO;

/*--CREACION DE PROCEDIMIENTO ENCABEZADO- */

CREATE OR REPLACE PACKAGE PK_SEGURIDAD IS


PROCEDURE SP_LOGEO
(PO_VRETORNO OUT VARCHAR2,
PI_LOGIN VARCHAR2,
PI_CLAVE VARCHAR2);
END PK_SEGURIDAD;
/*--CREACION DE PROCEDIMIENTO CUERPO- */

CREATE OR REPLACE PACKAGE BODY PK_SEGURIDAD IS


PROCEDURE SP_LOGEO
(PO_VRETORNO OUT VARCHAR2,
PI_LOGIN VARCHAR2,
PI_CLAVE VARCHAR2)
IS
VN_CONTADOR NUMBER;
VV_RETORNO VARCHAR2(100);
BEGIN
SELECT COUNT(*) INTO VN_CONTADOR
FROM GSC_USUARIO
WHERE USR_LOGIN = PI_LOGIN;

IF VN_CONTADOR = 0 THEN
VV_RETORNO := 'El Usuario es incorrecto';
ELSE
SELECT COUNT(*) INTO VN_CONTADOR
FROM GSC_USUARIO
WHERE USR_LOGIN = PI_LOGIN
AND USR_CLAVE = PI_CLAVE;
IF VN_CONTADOR = 0 THEN
VV_RETORNO := 'La clave es incorrecta';
ELSE
VV_RETORNO := 'Ok';
END IF;
END IF;

PO_VRETORNO := VV_RETORNO;

END;
END PK_SEGURIDAD;

/*--CREACION LA TABALA MARCA- */


CREATE TABLE GSC_MARCA
(
MAR_ID NUMBER(9),
MAR_DESCR VARCHAR2(50)
);

/* INSERTANDO COMENTARIO */
comment on column GSC_MARCA.MAR_ID is 'Identificador de la tabla
GSC_MARCA';
comment on column GSC_MARCA.MAR_DESCR is 'Descripción de la marca';

/*--ALTERANDO LA TABLA UN PRIMRY KEY */


ALTER TABLE GSC_MARCA
ADD CONSTRAINT PK_MARCA PRIMARY KEY (MAR_ID);
;

/*--CREANDO LA TABLA MAUSE */


CREATE TABLE GSC_MAUSE
(
RAT_ID NUMBER(9),
MAR_ID NUMBER(9),
RAT_NRSERIE VARCHAR2(50),
RAT_FECFAB DATE,
RAT_PRECIO NUMBER(9,4)
);

/*--ALTERANDO LA TABLA UN PRIMRY KEY */


ALTER TABLE GSC_MAUSE ADD CONSTRAINT PK_MAUSE PRIMARY KEY (RAT_ID);
ALTER TABLE GSC_MAUSE ADD CONSTRAINT FK_MAR_ID foreign key (MAR_ID)
REFERENCES GSC_MARCA(MAR_ID);

/*--CREANDO SECUENCIA A LA TABLA MARCA Y MAUSE */


CREATE SEQUENCE SQ_MARCA
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;

CREATE SEQUENCE SQ_MAUSE


minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;

/*INSERTAMOS DATOS A LA TABLA MARCA*/


INSERT INTO GSC_MARCA (MAR_ID, MAR_DESCR)VALUES
(SQ_MARCA.NEXTVAL,'Samsung');
INSERT INTO GSC_MARCA (MAR_ID, MAR_DESCR)VALUES
(SQ_MARCA.NEXTVAL,'Dell');
INSERT INTO GSC_MARCA (MAR_ID, MAR_DESCR)VALUES
(SQ_MARCA.NEXTVAL,'Toshiba');
INSERT INTO GSC_MARCA (MAR_ID, MAR_DESCR)VALUES
(SQ_MARCA.NEXTVAL,'Hp');
COMMIT;
/*INSERTAMOS DATOS A LA TABLA MAUSE*/
INSERT INTO GSC_MAUSE (RAT_ID, MAR_ID, RAT_NRSERIE, RAT_FECFAB,
RAT_PRECIO)
VALUES (MARCO.SQ_MAUSE.NEXTVAL, 3, 'A1574FVS',
TO_DATE('01/05/2017','DD/MM/YYYY'),10.53);
INSERT INTO GSC_MAUSE (RAT_ID, MAR_ID, RAT_NRSERIE, RAT_FECFAB,
RAT_PRECIO)
VALUES (SQ_MAUSE.NEXTVAL, 2, 'PWER484Y',
TO_DATE('20/06/2017','DD/MM/YYYY'),9.4875);
COMMIT
/*VERIFICACMOS LAS TABALAS */
SELECT * FROM MARCO.GSC_USUARIO

SELECT * FROM MARCO.GSC_MARCA

SELECT * FROM MARCO.GSC_MAUSE;

/*CREAMOS EL ENCABEZADO DE LOA PACKAGE O PROCEDIMIENTOS ALMACENADOS*/


CREATE OR REPLACE PACKAGE MARCO.PK_MANT_MAUSE IS
TYPE CUR_DATOS IS REF CURSOR;

PROCEDURE SP_BUSCA_MAUSE
(
PO_CURSOR IN OUT CUR_DATO,
PI_NRSERIE VARCHAR2,
PI_FECFAB VARCHAR2,
PI_PRECIO VARCHAR2
);
PROCEDURE SP_INS_MAUSE
(
PO_VRETORNO OUT VARCHAR2,
PI_MAR_ID NUMBER,
PI_NRSERIE VARCHAR2,
PI_FECFAB VARCHAR2,
PI_PRECIO NUMBER
);
END PK_MANT_MAUSE;
/*CREAMOS EL ENCABEZADO DE LOA PACKAGE*/
CREATE OR REPLACE PACKAGE BODY PK_MANT_MAUSE IS

PROCEDURE SP_BUSCA_MAUSE
(
PO_CURSOR IN OUT CUR_DATOS,
PI_NRSERIE VARCHAR2,
PI_FECFAB VARCHAR2,
PI_PRECIO VARCHAR2
)
IS
--VN_CONTADOR NUMBER;
--VV_RETORNO VARCHAR2(100);
BEGIN
OPEN PO_CURSOR FOR
SELECT
RA.RAT_ID,
RA.RAT_NRSERIE,
TO_CHAR(RA.RAT_FECFAB,'DD/MM/YYYY')RAT_FECFAB,
RA.RAT_PRECIO
FROM MARCO.GSC_MAUSE RA
WHERE RA.RAT_NRSERIE LIKE '%'|| PI_NRSERIE||'%'
AND(
(PI_FECFAB IS NULL)
OR
(PI_FECFAB IS NOT NULL AND PI_FECFAB =
TO_CHAR(RA.RAT_FECFAB,'DD/MM/YYYY'))
)
AND (
(PI_PRECIO IS NULL)
OR
(PI_PRECIO IS NOT NULL AND PI_PRECIO = TO_CHAR(RA.RAT_PRECIO))
);
END;
PROCEDURE SP_INS_MAUSE
(
PO_VRETORNO OUT VARCHAR2,
PI_MAR_ID NUMBER,
PI_NRSERIE VARCHAR2,
PI_FECFAB VARCHAR2,
PI_PRECIO VARCHAR2
)
IS
VN_CONTADOR NUMBER;
VV_RETORNO VARCHAR2(100);

BEGIN
INSERT INTO MARCO.GSC_MAUSE
(RAT_ID,MAR_ID,RAT_NRSERIE,RAT_FECFAB,RAT_PRECIO)
VALUES

(SQ_MAUSE.NEXTVAL,PI_MAR_ID,PI_NRSERIE,TO_DATE(PI_FECFAB,'DD/MM/YYYY')
,
PI_PRECIO);
COMMIT;
END;
END PK_MANT_MAUSE;

Das könnte Ihnen auch gefallen