plsql
Recoger a granel
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