ORA-06550 in"不是套装"

时间:2016-12-27 18:01:49

标签: oracle plsql

我试图在ttXs中找到重复的值:

DECLARE
type invmXXs is table of inv_table.mobileId%type index by binary_integer;
ttXs                     invmXXs;
answer BOOLEAN;

BEGIN
-- out_exported_list is ref cursor
-- (...)
OPEN out_exported_list FOR
/* (....) */

FETCH out_exported_list
BULK COLLECT INTO ttXs;

answer := ttXs IS NOT A SET; -- ORA-06550
-- ...
END;

但我得到的是ORA-06550,我不知道为什么。我该如何解决?

  

第1行的错误ORA-06550:第46行,第14列:PLS-00306:错误的数字   或者调用' MULTISET_UNION_DISTINCT' ORA-06550:   第46行,第1列:PL / SQL:语句被忽略

1 个答案:

答案 0 :(得分:0)

下面是一个非常简单的示例,您可以尝试使用嵌套表来处理/查找重复项。您试图通过使用不支持SET操作的关联数组来实现此目的。希望这会有所帮助。

set serveroutput on;
DECLARE
TYPE lv_var
IS
  TABLE OF VARCHAR2(100);
  v_tab lv_var;
  v1_tab lv_var;
BEGIN
  v_tab :=lv_var('a','a','b','c','d','d','e');
  v1_tab:=SET(v_tab);
  v1_tab:=SET(v_tab MULTISET
  EXCEPT v1_tab);
  FOR i IN v1_tab.FIRST..v1_tab.LAST
  LOOP
    dbms_output.put_line(v1_tab(i));
  END LOOP;
END;