Este es un ejercicio sencillo de como recorrer los registros
de un cursor. Yo uso un editor para este ejercicio.
Recomiendo que el punto 1 y 2 sea en una pestaña de tu
editor mientras que el punto 3 en una
pestaña aparte ya que puede adicionar muchos cambios y ejecutarlo.
Pasos:
1. Creamos una tabla ejemplo de nombre M_PRODUCTOS, con los
siguientes campos basicos: codigo, descripcion, ingreso_fecha, estado.
2. Agregamos 6 productos
3. Creamos script de consulta al cursor.
/*
1. CREACION DE TABLA
=================
*/
create table M_PRODUCTOS(
CODIGO VARCHAR2(6),DESCRIPCION VARCHAR2(100), INGRESO_FECHA DATE, ESTADO VARCHAR(1),
CONSTRAINT PK_MPRODCUTOS PRIMARY KEY ( CODIGO )
);
/*
2. AGREGAR NUEVOS REGISTROS
========================
*/
INSERT INTO M_PRODUCTOS VALUES('A00001', 'DESARMADOR PLANO', '10/10/2012', 'A');
INSERT INTO M_PRODUCTOS VALUES('A00002', 'DESARMADOR ESTRELLA', '11/10/2012', 'A');
INSERT INTO M_PRODUCTOS VALUES('A00003', 'TALADRO PERCUTOR', '11/10/2012', 'A');
INSERT INTO M_PRODUCTOS VALUES('A00004', 'TALADRO PORTATIL', '12/10/2012', 'A');
INSERT INTO M_PRODUCTOS VALUES('A00005', 'LIJADORA MANUAL', '12/10/2012', 'A');
INSERT INTO M_PRODUCTOS VALUES('A00006', 'CEPILLO METALICO', '15/10/2012', 'A');
COMMIT ;
/*
Aquí viene el 3er paso
*/
/*
3. SCRIPT DE CONSULTA AL CURSOR
============================
*/
/*SCRIPT */
DECLARE
/*DECLARAMOS LAS VARIABLES QUE RECIBIRRAN LOS DATOS DEL CURSOR*/
V_DESCRIPCION M_PRODUCTOS.DESCRIPCION%TYPE;
V_INGRESO_FECHA M_PRODUCTOS.INGRESO_FECHA%TYPE ;
/*DECLARAMOS EL CURSOR*/
CURSOR C_PROD IS SELECT DESCRIPCION, INGRESO_FECHA FROM M_PRODUCTOS ;
BEGIN
/*<ABRIMOS EL CURSOR*/
OPEN C_PROD ;
--- V_ROW_COUNT := C_PROD%ROWCOUNT ;
/*RECORREMOS EL CURSOR*/
LOOP
FETCH C_PROD INTO V_DESCRIPCION,V_INGRESO_FECHA ;
EXIT WHEN C_PROD%NOTFOUND ;
DBMS_OUTPUT.PUT_LINE(V_DESCRIPCION ||' , ' ||V_INGRESO_FECHA);
END LOOP ;
CLOSE C_PROD ;/*<--- CERRAMOR EL CURSOR*/
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END ;
/*
En la parte superior esta el resultado. Hasta la proxima .....
*/

