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