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
Top Related