Practica Almacenados

Embed Size (px)

Citation preview

  • 8/9/2019 Practica Almacenados.

    1/6

    1. Bloque PL/SQL para sacar la media de 2 nmeros.

    DECLAREV1 NUMBER:=&V1;V2 NUMBER:=&V2;

    R NUMBER;BEGINR:=(V1+V2)/2;DBMS_OUTPUT.PUT.LINE('MEDIA'||r);

    END;/

    Escribir un bloque PL/SQL que pida dos identificadores de profesores y determine cul de los dos est ms cerca de cero.

    DECLARE

    V1 NUMBER:=&V1;

    V2 NUMBER:=&V2;

    BEGIN

    IF V1

  • 8/9/2019 Practica Almacenados.

    2/6

    S INTEGER;

    BEGIN

    H:=NUM_SEG/3600;

    M:=(NUM_SEG/60)-60;

    S:=NUM_SEG MOD 60;

    DBMS_OUTPUT.PUT_LINE('H:'||H||'M:'||M||'S'||S);

    END;

    /

    Mostrar el contenido de una variable que contenga la capacidad total de todas las aulas del edificio de Informtica (EUI). En

    este caso el edificio de informtica lo sustitu por un edificio llamado C.

    DECLARE

    V1 NUMBER:=&V1;

    V2 NUMBER:=&V2;

    V3 NUMBER:=&V3;

    CAP NUMBER;

    BEGIN;

    CAP:=V1+V2+V3;

    DBMS_OUTPUT.PUT_LINE('CAPACIDAD='||CAP);

    END;

    /

    1. Cree una funcin que calcule la media de dos nmeros. Compruebe su funcionamiento.

    CREAR FUNCION

    CREATE OR REPLACE FUNCTION MEDIA(A IN NUMBER,BIN NUMBER) RETURN NUMBER IS

    BEGIN

    RETURN(A*B)/2;

    END MEDIA;

    /

  • 8/9/2019 Practica Almacenados.

    3/6

    APLICAR FUNCION

    CREATE OR REPLACE FUNCTION MEDIA (A IN NUMBER,B IN NUMBER) RETURN NUMBER ISBEGINRETURN(A*B)/2;END MEDIA;

    /

    DECLAREC NUMBER:=&V1;

    D NUMBER:=&V2;RES NUMBER;BEGINRES:=MEDIA(C,D);

    DBMS_OUTPUT.PUT_LINE('LA MEDIA ES'||RES);END;/

    Mostrar, ordenados por el cdigo, el nombre de todos los profesores, utilizando un cursor.

    SET SERVEROUTPUT ON;

    SET VERIFY OFF;

    DECLARE

    CURSOR C_PROFES IS

    SELECT NOMBREFROM PROFESORES

    ORDEB BY ID_PROFESORES;

    BEGIN

    FOR EJER7 IN C_PROFES LOOP;

    DBMS_OUTPUT.PUT_LINE('NOMBRE:'||EJER7.NOMBRE);

    END LOOP;

    END;

    /

  • 8/9/2019 Practica Almacenados.

    4/6

    Utilizando un cursor muestre las asignaturas cuyo ID sea par.

    DECLARE

    CURSOR C_PARES IS

    SELECT NOMBRE_ASIGNATURA

    FROM ASIGNATURAS

    WHERE MOD(ID_ASIGNATURA,2)=0;

    BEGIN

    FOR EJERCICIO8 IN C_PARES LOOP

    DBMS_OUTPUT.PUT_LINE('ASIGNATURA:'||EJERCICIO8.NOMBRE_ASIGNATURA);

    END LOOP;

    END;/

    Instrucciones para Guardar e invocar los Procedimientos

  • 8/9/2019 Practica Almacenados.

    5/6

    CREATE OR REPLACE PROCEDURE PRUEBA (NOMBRE VARCHAR2, SALARIO NUMBER) IS

    BEGIN

    UPDATE EMPLEADOS SET RENTA=SALARIO WHERE NOMB_EMPL=NOMBRE;

    END

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

    EXECUTE PRUEBA('OSCAR',24000);

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

    BEGIN

    PRUEBA('Sergio', 420000);END;

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

    Usa EXEC o EXEC sp_execute_sql.

    DROP PROCEDURE hr.remove_emp;

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

    SELECT DISTINCT name, type FROM ALL_SOURCE

    WHERE OWNER = USER AND TYPE IN ('PROCEDURE','FUNCTION') ORDER BY 2

  • 8/9/2019 Practica Almacenados.

    6/6