Vous êtes sur la page 1sur 2

DECLARE CURSOR cemp(pnombre IN VARCHAR2) IS SELECT salario, dni FROM empleados WHERE nombre = pnombre; cepm_rec cemp%ROWTYPE; vnombre

VARCHAR2(20); BEGIN vnombre := 'Juan'; DBMS_OUTPUT.PUT_LINE ('Sueldo de los empleados con nombre ' vnombre); FOR cemp_rec IN cemp(vnombre) LOOP DBMS_OUTPUT.PUT_LINE (cemp_rec.dni ' ' cemp_rec.salario); END LOOP; END;

DECLARE CURSOR c_grades IS --declaracion del CURSOR SELECT * FROM SIMULA WHERE CODIGO = 46135886; vr_info SIMULA%ROWTYPE; --declaracion de un record del tipo tabla: SIMULA BEGIN OPEN c_grades; --1. Abrir el Cursor LOOP Apuntes de Clase por Jos Andrs Martnez Silva (http://jamslug.com)Programacin en Orac le con PL/SQL - 73 de 121 FETCH c_grades INTO vr_info; --2. Recuperar la informacion del CURSOR EXIT WHEN(c_grades%NOTFOUND); --Condicion para salir del LOOP: no hay mas registros pl(vr_info.ID ' ' vr_info.CODIGO ' ' vr_info.CALIFICACION); END LOOP; CLOSE c_grades; --3. Cerrar el Cursor END;

DECLARE v_n1 NUMBER := &n1; v_n2 NUMBER := &n2; v_aux1 NUMBER := 0; v_aux2 NUMBER := 0; CURSOR c_factorial (vc_numero IN NUMBER) IS SELECT factorial(vc_numero) FROM DUAL; BEGIN OPEN c_factorial(v_n1);--OPEN cursor + PARAM FETCH c_factorial INTO v_aux1; --FECTH cursor CLOSE c_factorial; --CLOSE CURSOR OPEN c_factorial(v_n2);--OPEN cursor + PARAM FETCH c_factorial INTO v_aux2; --FECTH cursor CLOSE c_factorial; --CLOSE CURSOR v_aux2 := v_aux2 + v_aux1; DBMS_OUTPUT.PUT_LINE(v_n1 '!+' v_n2 '!=' v_aux2);

EXCEPTION WHERE OTHERS THEN DBMS_OUTPUT.PUT_LINE(' Se ha preducido un error'); END;

Vous aimerez peut-être aussi