我收藏如下。
ID NAME
----- -------
1 A
2 A
3 B
4 C
我想检查集合中是否有任何重复值。是否有可能在pl / sql
答案 0 :(得分:3)
您可以使用plsql的内置集合运算符“set”来创建具有唯一值的集合,并将其与原始集合进行比较。然后你可以使用另一个集合运算符“except”来获取它们:
DECLARE
type tt IS TABLE OF VARCHAR2(10);
orig tt;
tmp tt;
BEGIN
orig := tt('a', 'b', 'b', 'b', 'c', 'd', 'a');
tmp := SET(orig);
IF (tmp.count = orig.count) THEN
dbms_output.put_line('no duplicates');
ELSE
dbms_output.put_line('there are duplicates:');
tmp := SET(orig MULTISET except tmp);
FOR i IN 1 .. tmp.count
LOOP
dbms_output.put_line(tmp(i));
END LOOP;
END IF;
END;
/