plsql
Sammelgut sammeln
Suche…
Massendatenverarbeitung
Lokale Sammlungen sind in SELECT-Anweisungen nicht zulässig. Daher ist der erste Schritt das Erstellen einer Sammlung auf Schemaebene. Wenn die Auflistung nicht auf Schemaebene ist und in SELECT-Anweisungen verwendet wird, führt dies zu "PLS-00642: lokale Auflistungstypen, die in SQL-Anweisungen nicht zulässig sind".
CREATE OR REPLACE TYPE table1_t IS OBJECT (
a_1 INTEGER,
a_2 VARCHAR2(10)
);
- Erteilen Sie Berechtigungen für die Sammlung, sodass sie öffentlich in der Datenbank verwendet werden können
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;
- Holen von Daten aus der Tabelle in die Sammlung, durchlaufen Sie die Sammlung und drucken Sie die Daten.
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow