Oracle从类型号数组中获取distict值

前端之家收集整理的这篇文章主要介绍了Oracle从类型号数组中获取distict值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个下面定义的数组类型 –

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)?

@H_404_28@解决方法
您可以使用NESTED TABLE并使用MULTISET操作.

MULTISET操作中的DISTINCT关键字从集合中删除重复项.

例如,

sql> SET SERVEROUTPUT ON
sql> DECLARE
  2    TYPE t_tab IS TABLE OF NUMBER;
  3    l_tab1 t_tab := t_tab(1,1,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.

猜你在找的Oracle相关文章