我有一个下面定义的数组类型 -
TYPE INPUT_ARRAY_NUM IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
我已将上述类型的变量定义为 -
temp INPUT_ARRAY_NUM;
用以下值填充它们 -
temp(0) := 1; temp(1) := 1; temp(2) := 3;
如何获得不同的值(1,3)?
您可以使用NESTED TABLE并使用MULTISET
操作.
该DISTINCT在关键字MULTISET
操作删除了重复的从集合.
例如,
SQL> SET SERVEROUTPUT ON SQL> DECLARE 2 TYPE t_tab IS TABLE OF NUMBER; 3 l_tab1 t_tab := t_tab(1,1,3,3,5,5); 4 BEGIN 5 l_tab1 := l_tab1 MULTISET INTERSECT DISTINCT l_tab1; 6 FOR i IN l_tab1.first .. l_tab1.last 7 LOOP 8 DBMS_OUTPUT.put_line('Distinct values are '||l_tab1(i)); 9 END LOOP; 10 END; 11 / Distinct values are 1 Distinct values are 3 Distinct values are 5 PL/SQL procedure successfully completed.