为什么我不能像这样使用我的Oracle用户定义类型?

时间:2010-10-26 11:27:39

标签: sql oracle plsql

在Oracle包中,我定义了一个类型

type setTable is table of my_sets.pkey%type;

在包装声明中(非身体部分)。引用的pkey列是number(38)。然后在包体中的一个函数中我有

...
with d as (select column_value from table(sets)),
...

其中sets是类型settable的函数的参数。此行无法使用错误'ORA-22905进行编译:无法访问非嵌套表项的行'。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:4)

select语句是SQL而不是PL / SQL,SQL引擎只能使用服务器上定义的类型,如下所示:

create type setObj is object (<attributes>);
create type setTable is table of setObj;