Anda di halaman 1dari 6

1.

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


DECLARE
V1 NUMBER:=&V1;
V2 NUMBER:=&V2;
R NUMBER;
BEGIN
R:=(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<V2 THEN
DBMS_OUTPUT.PUT.LINE('VALOR cercano a cero='||v1);
ELSE
DBMS_OUTPUT.PUT.LINE('VALOR cercano a cero='||v2);
END IF;
END;
/

Escribir un bloque PL/SQL que convierta una determinada cantidad expresada en segundos a horas, minutos y segundos.
DECLARE
NUM_SEG NUMBER:=&VAL;
H INTEGER;
M INTEGER;

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;
/

APLICAR FUNCION
CREATE OR REPLACE FUNCTION MEDIA (A IN NUMBER,B IN NUMBER) RETURN NUMBER IS
BEGIN
RETURN(A*B)/2;
END MEDIA;
/
DECLARE
C NUMBER:=&V1;
D NUMBER:=&V2;
RES NUMBER;
BEGIN
RES:=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 NOMBRE
FROM PROFESORES
ORDEB BY ID_PROFESORES;
BEGIN
FOR EJER7 IN C_PROFES LOOP;
DBMS_OUTPUT.PUT_LINE('NOMBRE:'||EJER7.NOMBRE);
END LOOP;
END;
/

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

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

Anda mungkin juga menyukai