DECLARE
|
nt_all nt_numtype := nt_numtype(0);
|
nt_odd nt_numtype := nt_numtype(1,3,5,7,9);
|
nt_even nt_numtype := nt_numtype(2,4,6,8);
|
|
FUNCTION op_nt(i_nt IN nt_numtype) RETURN VARCHAR2 IS
|
s_nested_tab VARCHAR2(200);
|
BEGIN
|
FOR idx IN i_nt.FIRST .. i_nt.LAST LOOP
|
IF i_nt.EXISTS(idx) THEN
|
IF idx < i_nt.COUNT THEN
|
s_nested_tab := s_nested_tab||i_nt(idx)||', ';
|
ELSE
|
s_nested_tab := s_nested_tab||i_nt(idx);
|
END IF;
|
END IF;
|
END LOOP;
|
RETURN s_nested_tab;
|
END op_nt;
|
BEGIN
|
DBMS_OUTPUT.PUT_LINE('Base Nested Table ['||LPAD(nt_all.COUNT,2,' ')||'] -> ('||op_nt(nt_all)||')');
|
|
nt_all := nt_all MULTISET UNION nt_odd;
|
DBMS_OUTPUT.PUT_LINE('UNION With nt_odd ['||LPAD(nt_all.COUNT,2,' ')||'] -> ('||op_nt(nt_all)||')');
|
|
nt_all := nt_all MULTISET UNION nt_even;
|
DBMS_OUTPUT.PUT_LINE('UNION with nt_even ['||nt_all.COUNT||'] -> ('||op_nt(nt_all)||')');
|
|
nt_all.EXTEND;
|
nt_all(11) := nt_odd(1);
|
nt_all.EXTEND;
|
nt_all(12) := nt_even(1);
|
DBMS_OUTPUT.PUT_LINE('Extended Table ['||nt_all.COUNT||'] -> ('||op_nt(nt_all)||')');
|
|
nt_all.DELETE(11);
|
DBMS_OUTPUT.PUT_LINE('Deleted Table ['||nt_all.COUNT||'] -> ('||op_nt(nt_all)||')');
|
|
nt_all := SET(nt_all);
|
DBMS_OUTPUT.PUT_LINE('Unique Nested Table ['||nt_all.COUNT||'] -> ('||op_nt(nt_all)||')');
|
END;
|
/
|