感谢您的好意
我在包的规范中声明了一个记录类型和记录表,我需要使用这个表类型作为管道函数的返回。
如果我将 INDEX BY (something) 添加到表声明中,则会导致管道函数中的错误编译。为什么不能使用 INDEX BY?
问问题
2737 次
1 回答
9
据记载,您不能在流水线函数中使用 index-by(关联数组)。您必须使用嵌套表(没有“索引”或 SQL 类型定义的 pl/sql 数组)。
SQL> create or replace package testpkg
2 as
3 type test_rec is record(id number, id2 number);
4 type test_tab is table of test_rec index by binary_integer;
5
6 function test return test_tab pipelined;
7
8 end;
9 /
Warning: Package created with compilation errors.
SQL> show errors
Errors for PACKAGE TESTPKG:
LINE/COL ERROR
-------- -----------------------------------------------------------------
6/12 PLS-00630: pipelined functions must have a supported collection
return type
SQL> create or replace package testpkg
2 as
3 type test_rec is record(id number, id2 number);
4 type test_tab is table of test_rec;
5
6 function test return test_tab pipelined;
7
8 end;
9 /
Package created.
SQL>
于 2013-01-31T08:10:17.647 回答