0

我想将(产品)ID 添加到 PL/SQL 中的“数字表”中。是否可以检查表格是否包含特定数字?

我创建了表格:

type list_of_produktid_t IS TABLE OF NUMBER INDEX BY binary_integer;

现在我遍历一个包含有关产品的一些信息的大表。这些信息,我需要对产品进行分组和订购。所以我不能在选择子句中使用“唯一”关键字

我需要类似的东西:

IF NOT list_of_produktid.contains(l_items(i).item_name) THEN
 list_of_produktid(list_of_produktid.count+1):=l_items(i).item_name;
END IF;

问候

4

1 回答 1

1

是的,有 - 使用 SQL多重集条件。另请参阅PL/SQL 语言参考中的将嵌套表与 SQL 多集条件进行比较。

一个例子:

declare
  subtype bar_t is pls_integer;
  type bar_list_t is table of bar_t;
  type foo_list_t is table of bar_list_t index by pls_integer;
  v_foos foo_list_t;
  v_find_me constant pls_integer := 3;
begin
  v_foos(1) := bar_list_t(1,3,5,7,9);
  v_foos(2) := bar_list_t(0,2,4,6,8);

  for i in v_foos.first .. v_foos.last loop
    if v_find_me member of v_foos(i) then
      dbms_output.put_line('value ' || v_find_me || ' is found from index ' || i);
    end if;
  end loop;
end;
/

请注意,您可以使用 否定逻辑not member of

于 2013-07-30T05:09:54.370 回答