【发布时间】:2017-05-29 10:25:46
【问题描述】:
我有一个声明的对象类型集合:
CREATE TYPE category_type AS OBJECT (
col1 VARCHAR2(6),
col2 VARCHAR2(10),
col3 NUMBER);
/
CREATE TYPE category_tab AS TABLE OF category_type;
/
在 PL/SQL 代码中:
v_category_data category_Tab := category_tab();
填充 v_category_data 后,我发现有重复项。我需要删除它们。因此,我尝试通过以下方式使用 MULTISET UNION DISTINCT:
v_new_data := v_category_data;
v_new_data := v_new_data MULTISET UNION DISTINCT v_category_data;
但是,我得到了这个错误:
804/17 PLS-00306: wrong number or types of arguments in call to
'MULTISET_UNION_DISTINCT'
我尝试使用 MAP 功能,但不明白如何使用它,或者它是否有帮助。
有人知道删除对象集合中的重复项的方法吗?
【问题讨论】:
-
你是如何填充集合的 - 你不能首先防止重复被包含吗?
-
嗨,我认为 select into 在这里更容易。只需在变量中选择 distinct