Nested Table Collections
Nested table collections are an extension of the index-by tables. The main difference between the two is that nested tables
can be stored in a database column but index-by tables cannot. In addition some DML operations are possible on nested tables
when they are stored in the database. During creation the collection must be dense, having consecutive subscripts
for the elements. Once created elements can be deleted using the
DELETE
method to make the collection sparse.
The
NEXT
method overcomes the problems of traversing sparse collections.
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
TYPE table_type IS TABLE OF NUMBER(10);
v_tab table_type;
v_idx NUMBER;
BEGIN
-- Initialise the collection with two values.
v_tab := table_type(1, 2);
-- Extend the collection with extra values.
<< load_loop >>
FOR i IN 3 .. 5 LOOP
v_tab.extend;
v_tab(v_tab.last) := i;
END LOOP load_loop;
-- Delete the third item of the collection.
v_tab.DELETE(3);
-- Traverse sparse collection
v_idx := v_tab.FIRST;
<< display_loop >>
WHILE v_idx IS NOT NULL LOOP
DBMS_OUTPUT.PUT_LINE('The number ' || v_tab(v_idx));
v_idx := v_tab.NEXT(v_idx);
END LOOP display_loop;
END;
/
The number 1
The number 2
The number 4
The number 5
PL/SQL procedure successfully completed.
No comments:
Post a Comment