Buscar..


Procesamiento de datos a granel

colecciones locales no están permitidas en declaraciones selectas. Por lo tanto, el primer paso es crear una colección de nivel de esquema. Si la colección no es de nivel de esquema y se utiliza en las instrucciones SELECT, se generará "PLS-00642: los tipos de colección local no están permitidos en las instrucciones SQL"

CREATE OR REPLACE TYPE table1_t IS OBJECT (
a_1 INTEGER,
a_2 VARCHAR2(10)
);

- Permitir permisos en la colección para que pueda usarse públicamente en la base de datos

     GRANT EXECUTE ON table1_t TO PUBLIC;
     CREATE OR REPLACE TYPE table1_tbl_typ IS TABLE OF table1_t;
     GRANT EXECUTE ON table1_tbl_typ TO PUBLIC;

--seque los datos de la tabla a la colección y luego recorra la colección e imprima los datos.

    DECLARE
     table1_tbl table1_tbl_typ;
    BEGIN
     table1_tbl := table1_tbl_typ();
      SELECT table1_t(a_1,a_2)  
      BULK COLLECT INTO table1_tbl 
      FROM table1 WHERE ROWNUM<10;

     FOR rec IN (SELECT a_1 FROM TABLE(table1_tbl))--table(table1_tbl) won't give error)
     LOOP
       dbms_output.put_line('a_1'||rec.a_1);
       dbms_output.put_line('a_2'||rec.a_2);
     END LOOP;
    END;
/


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow