ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Procedimientos Oracle

walterin022Práctica o problema21 de Octubre de 2018

1.079 Palabras (5 Páginas)105 Visitas

Página 1 de 5

CREATE OR REPLACE PROCEDURE LECTURA

IS

CURSOR TABLA_VIRTUAL IS

SELECT * FROM ESTUDIANTE;

ARREGLO TABLA_VIRTUAL%ROWTYPE;

BEGIN

OPEN TABLA_VIRTUAL;

FETCH TABLA_VIRTUAL INTO ARREGLO;

WHILE TABLA_VIRTUAL%FOUND

LOOP

DBMS_OUTPUT.PUT_LINE('NOMBRE:' || ARREGLO.NOMBRE ||' APELLIDO: ' || ARREGLO.APELLIDO);

FETCH TABLA_VIRTUAL INTO ARREGLO;

END LOOP;

CLOSE TABLA_VIRTUAL;

END;

CREATE OR REPLACE PROCEDURE CURSOR_FORLOOP

IS

CURSOR CR_LOOP

IS

SELECT * FROM CURSO;

V_RECEPTORA CR_LOOP%ROWTYPE;

BEGIN

FOR V_RECEPTORA IN CR_LOOP

LOOP

DBMS_OUTPUT.PUT_LINE(CR_LOOP%ROWCOUNT || '' || V_RECEPTORA.NOMBRE_CURSO);

END LOOP;

END;

/

CREATE OR REPLACE PROCEDURE PARAMETROS (V_AP IN VARCHAR)

AS

CURSOR CR_PARAMETRO(V_APELLIDO IN VARCHAR2)

IS

SELECT *

FROM ESTUDIANTE

WHERE APELLIDO=V_APELLIDO;

V_RECEPTORA CR_PARAMETRO%ROWTYPE;

BEGIN

FOR V_RECEPTORA IN CR_PARAMETRO(V_AP)

LOOP

DBMS_OUTPUT.PUT_LINE(V_RECEPTORA.NOMBRE);

END LOOP;

END;

/

SELECT CURSO.NUMERO_CURSO,NOMBRE_CURSO,CREDITOS

FROM CURSO,INSCRIPCION

WHERE CURSO.NUMERO_CURSO=INSCRIPCION.NUMERO_CURSO

AND INSCRIPCION.ID_ESTUDIANTE=V_ID;

SELECT NOMBRE, APELLIDO

FROM ESTUDIANTE

WHERE ESTUDIANTE.ID_ESTUDIANTE=V_ID;

_________________________________________________________________________________________________________

CREATE OR REPLACE PROCEDURE PARAMETROOS (V_ID IN VARCHAR)

AS

CURSOR CR_PARAMETRO(V_ID IN VARCHAR2)

IS

SELECT CURSO.NUMERO_CURSO,CURSO.NOMBRE_CURSO,CREDITOS

FROM CURSO,INSCRIPCION

WHERE CURSO.NUMERO_CURSO=INSCRIPCION.NUMERO_CURSO

AND INSCRIPCION.ID_ESTUDIANTE=V_ID;

V_RECEPTORA CR_PARAMETRO%ROWTYPE;

nom ESTUDIANTE.NOMBRE%type;

ape ESTUDIANTE.APELLIDO%type;

BEGIN

SELECT NOMBRE, APELLIDO INTO nom, ape

FROM ESTUDIANTE

WHERE ESTUDIANTE.ID_ESTUDIANTE=V_ID;

FOR V_RECEPTORA IN CR_PARAMETRO(V_ID)

LOOP

DBMS_OUTPUT.PUT_LINE('EL ALUMNO: ' || nom ||' ' || ape || ' ESTA INSCRITO EN LOS SIGUIENTES CURSOS: ' || V_RECEPTORA.NUMERO_CURSO ||' ' || V_RECEPTORA.NOMBRE_CURSO || V_RECEPTORA.CREDITOS);

END LOOP;

END;

/

CREATE OR REPLACE PROCEDURE PARAMETROOS (V_ID IN VARCHAR)

AS

CURSOR CR_PARAMETRO(V_ID IN VARCHAR2)

IS

SELECT CURSO.NUMERO_CURSO,CURSO.NOMBRE_CURSO,CREDITOS

FROM CURSO,INSCRIPCION

WHERE CURSO.NUMERO_CURSO=INSCRIPCION.NUMERO_CURSO

AND INSCRIPCION.ID_ESTUDIANTE=V_ID;

V_RECEPTORA CR_PARAMETRO%ROWTYPE;

nom ESTUDIANTE.NOMBRE%type;

ape ESTUDIANTE.APELLIDO%type;

BEGIN

SELECT NOMBRE, APELLIDO INTO nom, ape

FROM ESTUDIANTE

WHERE ESTUDIANTE.ID_ESTUDIANTE=V_ID;

DBMS_OUTPUT.PUT_LINE('EL ALUMNO: ' || nom ||' ' || ape );

DBMS_OUTPUT.PUT_LINE(' ESTA INSCRITO EN LOS SIGUIENTES CURSOS: ');

FOR V_RECEPTORA IN CR_PARAMETRO(V_ID)

LOOP

DBMS_OUTPUT.PUT_LINE(V_RECEPTORA.NUMERO_CURSO ||' ' || V_RECEPTORA.NOMBRE_CURSO || V_RECEPTORA.CREDITOS);

END LOOP;

END;

/

______________________________________________________________________________________________________________________________________

TRIGGERS

CREATE TABLE CLIENTES( CODIGO VARCHAR(2),NOMBE VARCHAR(15), LIMITE NUMBER (8,2));

CREATE OR REPLACE TRIGGER INSERCION

AFTER INSERT

ON CLIENTES

FOR EACH ROW

BEGIN

DBMS_OUTPUT.PUT_LINE('CLIENTE ADICIONADO');

END;

CREATE TABLE AUDITOR( REGISLONG VARCHAR(40));

CREATE OR REPLACE TRIGGER AUDITAR_CLIENTES

AFTER UPDATE

ON CLIENTES

FOR EACH ROW

BEGIN

INSERT INTO AUDITOR

VALUES('ANTERIOR' ||:OLD.LIMITE|| ' NUEVO' || :NEW.LIMITE);

END;

ALTER TABLE CLIENTES ADD FOREIGN KEY(ESTADO) REFERENCES ESTADOS(CODIGO);

CREATE OR REPLACE VIEW CLIENTES_ESTADOS

AS

SELECT CODIGO, NOMBRE, LIMITE, NOMBRE_E

FROM CLIENTES, ESTADOS

WHERE

CLIENTES.ESTADO=ESTADOS.CODIGO_E;

/

ALTER TABLE ESTADOS RENAME COLUMN CODIGO TO CODIGO_E;

__________________________________________________________________________________________________________________________________________

SQL> CREATE TABLE ARTICULOS (

2 CODIGO VARCHAR(5) PRIMARY KEY,DESCRIPCION VARCHAR (30),PRECIO NUMBER(5,2), CODIGO_ALMACEN VARCHAR(6));

Table created.

SQL> CREATE TABLE ARTICULOS_MAYOR(

2 CODIGO VARCHAR(5) PRIMARY KEY,DESCRIPCION VARCHAR (30),PRECIO NUMBER(5,2), CODIGO_ALMACEN VARCHAR(6));

Table created.

SQL> CREATE TABLE ARTICULOS_MENOR(

2 CODIGO VARCHAR(5) PRIMARY KEY,DESCRIPCION VARCHAR (30),PRECIO NUMBER(5,2), CODIGO_ALMACEN VARCHAR(6));

SQL> CREATE TABLE ALMACENES(

2 CODIGO_ALMACENES VARCHAR (6) PRIMARY KEY,

3 NOMBRE_ALMACENES VARCHAR (30));

Table created.

SQL> ALTER TABLE ARTICULOS ADD FOREIGN KEY(CODIGO_ALMACEN) REFERENCES ALMACENES(CODIGO_ALMACENES);

Table altered.

insert into articulos values ('00001','DESODORANTE EN AEROSOL', 40.00, 100001);

insert into articulos values ('00002','AGUA CIEL 600ml', 10.00, 100001);

insert into articulos values ('00003','PAPAS FRITAS', 11.00, 100001);

insert into ALMACENES values (100001,'PRODUCTO TERMINADO');

PROCEDIMIENTO PARA TABLAS MENOR Y MAYOR

_____________________________________________________________________________________________________________________________________________

CREATE OR REPLACE PROCEDURE PROCESO (V_PRE IN NUMBER)

AS

CURSOR CP_PARAMETRO

IS

SELECT *FROM ARTICULOS;

V_RECEPTORA CP_PARAMETRO%ROWTYPE;

MSG EXCEPTION;

BEGIN

FOR V_RECEPTORA IN CP_PARAMETRO

LOOP

IF V_RECEPTORA.PRECIO >=V_PRE THEN

INSERT INTO ARTICULOS_MAYOR VALUES (V_RECEPTORA.CODIGO,V_RECEPTORA.DESCRIPCION,V_RECEPTORA.PRECIO,V_RECEPTORA.CODIGO_ALMACEN);

ELSE

INSERT INTO ARTICULOS_MENOR VALUES (V_RECEPTORA.CODIGO,V_RECEPTORA.DESCRIPCION,V_RECEPTORA.PRECIO,V_RECEPTORA.CODIGO_ALMACEN);

END IF;

END LOOP;

RAISE MSG;

EXCEPTION

WHEN MSG THEN

DBMS_OUTPUT.PUT_LINE('FIN DEL PROCESO');

END;

/

______________________________________________________________________________________________________________________________________________

CREATE OR REPLACE TRIGGER CONDICION

AFTER INSERT

ON ARTICULOS_MAYOR

FOR EACH ROW

BEGIN

DBMS_OUTPUT.PUT_LINE('CUMPLE CONDICION');

END;

/

______________________________________________________________________________________________________________________________________________

CREATE VIEW

CREATE OR REPLACE VIEW DATES

AS

SELECT CODIGO, DESCRIPCION, PRECIO, NOMBRE_ALMACENES

FROM ARTICULOS, ALMACENES

WHERE

CODIGO_ALMACEN=CODIGO_ALMACENES;

/

_____________________________________________________________________________________________________________________________________________

DECLARE

TYPE ARREGLO_DE_NOMBRES IS VARRAY(5) OF VARCHAR2(10);

TYPE RESULTADO IS VARRAY(5) OF INTEGER;

NOMBRES ARREGLO_DE_NOMBRES;

CAL RESULTADO;

TOTAL INTEGER;

BEGIN

NOMBRES:=ARREGLO_DE_NOMBRES('CARLOS','ZITA','MIRIAM','NATALIA','JESSY');

CAL:= RESULTADO(10,9,8,7,6);

TOTAL:=NOMBRES.COUNT;

DBMS_OUTPUT.PUT_LINE('TOTAL'|| TOTAL ||' ALUMNOS');

DBMS_OUTPUT.PUT_LINE('ALUMNO CALIFICACION');

FOR I IN 1 .. TOTAL LOOP

DBMS_OUTPUT.PUT_LINE(NOMBRES(I) || '-------------->' || CAL(I));

END LOOP;

END;

/

___________________________________________________________________________________________________________________________________________

QUICKSORT ORACLE

CREATE OR REPLACE PROCEDURE BURBU

IS

TYPE LISTA IS VARRAY(20) OF INTEGER;

NUMEROS LISTA;

TEMP INTEGER;

TAM INTEGER;

BEGIN

NUMEROS:=LISTA(20,22,345,223,44,555,1,3,67,56,6,6765,344,9999,78,567,676,786,99,778);

...

Descargar como (para miembros actualizados) txt (14 Kb) pdf (64 Kb) docx (22 Kb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com