Arrays 将数字数组与函数中的表联接

Arrays 将数字数组与函数中的表联接,arrays,oracle,plsql,Arrays,Oracle,Plsql,我需要一些对数组类型的支持,因为它对我来说是新事物,所以 我有一个功能: create or replace type num_array as table of number; create or replace function functionname(arr_in num_array) return num_array is tab num_array; begin select id_acc bulk collect into tab from ( SELECT a.id_

我需要一些对数组类型的支持,因为它对我来说是新事物,所以

我有一个功能:

create or replace type num_array as table of number;

create or replace function functionname(arr_in num_array) 
return num_array is
tab num_array;
begin
select id_acc bulk collect into tab from (
    SELECT a.id_acc
      FROM (SELECT id_acc, parent_acc FROM account) a
      connect by nocycle prior a.id_acc=a.parent_acc
      start with id_acc in 
      (
        select distinct ID_ACC
        from (SELECT id_acc, parent_acc FROM account 
      ) a
      where parent_acc = id_acc
      connect by nocycle prior a.parent_acc = a.id_acc or parent_acc is null 
      start with id_acc in (select parent_acc from table_name t,account a where t.id=a.id_acc)));

return tab;
end;
作为一个输入,我希望有一个数字id数组。我希望将该数字从输入连接到account表。这符合:

start with id_acc in (select parent_acc from table_name t,account a where t.id=a.id_acc)));
我想用输入的数字加入表帐户, 我试图使用tabletab,帐户a,但出现错误。
作为输出,我希望获得select query so return选项卡的结果。

我不确定我是否理解您想要实现的目标。为了帮助您理解语法,请看以下内容:

start with id_acc in (select * from table(arr_in));

下面我提供了一个小片段,它基本上说明了将嵌套表类型与表连接的问题

    CREATE OR REPLACE FUNCTION test_ntt_join
      RETURN NUMBER_NTT
    AS
      lv_tab_num NUMBER_NTT;
      lv_tab2 NUMBER_NTT;
    BEGIN
      SELECT LEVEL BULK COLLECT INTO lv_tab_num FROM DUAL CONNECT BY LEVEL < 10;
        SELECT COLUMN_VALUE
        BULK COLLECT INTO 
        lv_tab2
        FROM TABLE(lv_tab_num) t,
          EMP
        WHERE emp.empno= t.column_value;
      RETURN lv_tab2;
    END;


------------------------------------------OUTPUT------------------------------------
select * from table(test_ntt_join);

COLUMN_VALUE
1
1
3

------------------------------------------OUTPUT------------------------------------

我想把tablerr\u和account表连接起来。类似这样的东西从tablerr\u中选择parent\u acc,account a,其中t.column\u value=a.id\u acc,但它不工作你说不工作是什么意思?未给出预期结果或错误消息,请将其粘贴到此处。再次:我正在尝试将表与数组连接。最后,它可以工作:它应该是:从t中的表arr\u中的select parent\u acc中的id\u acc开始,其中t.column\u value=a.id\u acc。当然,我的意思是:从账户中选择父账户,其中id账户在select*中,从表格中选择。