PLSQL用户定义的表类型和连接

时间:2011-10-28 11:49:54

标签: oracle stored-procedures plsql user-defined-types varray

假设我有一个用户定义的表类型:

create or replace type SrcCodeTbl is table of varchar(20);

我有一个具有此类参数的过程:

create or replace procedure Blah.MyProc( srcCodesIN in SrcCodeTbl )

我可以在select / join语句中使用srcCodesIn和过程中的另一个表吗?一直试图让它工作,编译器继续报告:

select distinct someVal into outVal 
from OtherTable ot, srcCodesIn sc 
where ot.ID = sc.column_val;

Error(28,22): PL/SQL: ORA-00942: table or view does not exist

我确信它的语法很简单,我只是无法弄明白。我确实得到了一些与for循环一起工作的东西,但我很感兴趣,如果还有另一种方法可以做到这一点。感谢。

1 个答案:

答案 0 :(得分:2)

怎么样

SELECT DISTINCT someVal 
INTO outVal 
FROM OtherTable ot, TABLE(srcCodesIn) sc 
WHERE ot.ID = sc.column_value