Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle错误(36,14):PL/SQL:ORA-22905:无法从非嵌套表项访问行_Sql_Oracle_Procedure - Fatal编程技术网

Oracle错误(36,14):PL/SQL:ORA-22905:无法从非嵌套表项访问行

Oracle错误(36,14):PL/SQL:ORA-22905:无法从非嵌套表项访问行,sql,oracle,procedure,Sql,Oracle,Procedure,这真的让我恼火,所以我伸出了手 我在一个包中声明了一个Oracle SQL过程和几个对象 TYPE myRecord IS RECORD ( myVal INTEGER ); myTab IS TABLE OF myRecord; procedure myProc(myCollection IN myTab); 在我试图从myCollection中选择的包体内部。在Oracle12c中,只需使用TABLE函数就可以了 BEGIN SELECT myVal FROM TABLE(

这真的让我恼火,所以我伸出了手

我在一个包中声明了一个Oracle SQL过程和几个对象

TYPE myRecord IS RECORD (
    myVal INTEGER
);
myTab IS TABLE OF myRecord;
procedure myProc(myCollection IN myTab);
在我试图从myCollection中选择的包体内部。在Oracle12c中,只需使用TABLE函数就可以了

BEGIN
    SELECT myVal FROM TABLE(myCollection);
例如,在版本11.2中,我似乎得到了错误(36,14):PL/SQL:ORA-22905:无法从非嵌套表项访问行


我已经看过了其他答案,但还不清楚我需要做什么才能让它工作。

在11.2及更早版本中,您不能在SQL语句中使用PL/SQL声明的类型-相反,您需要在架构级别声明类型(即
创建或替换类型…
).@Boneist是全局声明类型时过程中的相同语法吗?是;如果您创建mytab的全局类型,您将在过程参数中使用该类型,就像在包中声明mytab类型一样。只是范围更广-即在包装之外。