sql语句中不允许使用本地集合类型(IN查询)

时间:2014-04-13 04:40:12

标签: plsql

我有一个简单的plsql查询,我希望通过在查询中传递数组来从表中运行获取记录。 下面的代码是一个大程序的子程序。

declare
  -- some array say item_array (2d dynamic dynamic array)
begin
  -- filled some records in array item_array say 1 to 10
  select id from demo where item in (item_array(1)); 
end;

请帮忙。 当我们计算更多transaction_id的频繁项目集时,我需要这样的方法来计算频繁项目集(使用apriori close进行数据挖掘)。

如果可能的话,我们也可以将结果存储在数组中。

1 个答案:

答案 0 :(得分:0)

看起来您想要将ANY keyword与数组一起使用。

SELECT id FROM demo WHERE item = ANY (item_array[1]);

以上假设 - 正如评论所暗示的那样 - item_array是二维的,你想要搜索第一个元素的数组。

另请注意,当您accessing the array's individual elements时,则使用方括号而不是括号。

虽然我从未这样做,但如果它是INOUT参数,那么我不明白为什么你不能修改数组并因此返回它。但是,我不相信你有充分的理由这样做;仅仅因为你可以做某事并不能使它成为正确的方法。