Hay que tener en cuenta que no debemos utilizar grandes cantidades de información con Bulk Collect porque la memoria del servidor Oracle se puede ver afectado y a la vez tambien afectar otros procesos.
Este es un pequeño ejemplo donde se pasa toda la informacion de la tabla PRODUCTOS al arreglo PRODUCTOS_COLECCION
CREATE TABLE PRODUCTOS
(
COD_PRODUCTO VARCHAR(10),
DES_PRODUCTO VARCHAR2(50),
FLG_ACTIVO CHAR(1)
);
INSERT INTO PRODUCTOS VALUES ('1','ARROZ','S');
INSERT INTO PRODUCTOS VALUES ('2','ACEITE','S');
INSERT INTO PRODUCTOS VALUES ('3','AZUCAR','S');
DECLARE
TYPE PRODUCTO_FILA IS RECORD (COD_PRODUCTO VARCHAR(10),
DES_PRODUCTO VARCHAR2(50),
FLG_ACTIVO CHAR(1));
TYPE TYPE_TABLA_PRODUCTOS IS TABLE OF PRODUCTO_FILA;
PRODUCTOS_COLECCION TYPE_TABLA_PRODUCTOS;
BEGIN
SELECT COD_PRODUCTO,DES_PRODUCTO,FLG_ACTIVO
BULK COLLECT INTO PRODUCTOS_COLECCION
FROM PRODUCTOS;
--OBTENER LA DESCRICPION DE LOS PRODUCTOS
FOR I IN 1 .. PRODUCTOS_COLECCION.COUNT
LOOP
DBMS_OUTPUT.PUT_LINE(PRODUCTOS_COLECCION(I).DES_PRODUCTO);
END LOOP;
END;
No hay comentarios.:
Publicar un comentario