lunes, 10 de abril de 2017

Ejemplo de Cursor | Oracle

CREATE OR REPLACE
PROCEDURE P_2
AS
--Creamos cursor con sentencia dentro
CURSOR CUR_1 IS
SELECT DISTINCT APELLIDO,ESTADO
FROM PERSONA P
INNER JOIN EMPLEADO EM ON EM.CODEMP = P.CODPER
INNER JOIN ORDENMEDICA O ON O.CODMED = EM.CODEMP
ORDER BY APELLIDO;
--Creamos variables 
APEL VARCHAR2(25);
ESTAD VARCHAR2(1);

BEGIN
--Abrimos el cursor
OPEN CUR_1;
/* Recorremos a primera posición y 
almacenamos en las variables */
FETCH CUR_1 INTO APEL,ESTAD;
--Creamos bucle mientras haya loop
WHILE CUR_1 % FOUND LOOP
--Mostramos por pantalla 
DBMS_OUTPUT.PUT_LINE(APEL||'*'||ESTAD);
/* Recorremos a siguiente posicion y 
almacenamos en las variables */
FETCH CUR_1 INTO APEL,ESTAD;
--Terminamos loop
END LOOP;
--Cerramos cursor
CLOSE CUR_1;
--Cerramos procedimiento
END;

Diagrama:

0 comentarios:

Publicar un comentario