问题描述
您可以将PL/SQL集合 (如按索引表/关联数组) 加入到常规表吗?如果不是,那么在两个集合中匹配数据的好技术是什么?
Thanx,
唐
Thanx,
唐
专家解答
不是11分,而是12分。
v11
v12
在v11中,您需要将数据传输到嵌套表类型或全局临时表。
希望这有所帮助。
v11
SQL> create or replace
2 package pkg is
3 type t is table of number index by pls_integer;
4 procedure p;
5 end;
6 /
Package created.
SQL>
SQL> create or replace
2 package body pkg is
3
4 procedure p is
5 r t;
6 begin
7 r(1) := 10;
8 r(2) := 20;
9
10 for i in ( select * from table(r)
11 )
12 loop
13 null;
14 end loop;
15 end;
16
17 end;
18 /
Warning: Package Body created with compilation errors.
SQL>
SQL>
SQL> sho err
Errors for PACKAGE BODY PKG:
LINE/COL ERROR
-------- -----------------------------------------------------------------
9/14 PL/SQL: SQL Statement ignored
9/28 PL/SQL: ORA-22905: cannot access rows from a non-nested table
item
9/34 PLS-00382: expression is of wrong type
v12
SQL> create or replace 2 package pkg is 3 type t is table of number index by pls_integer; 4 procedure p; 5 end; 6 / Package created. SQL> SQL> create or replace 2 package body pkg is 3 4 procedure p is 5 r t; 6 begin 7 r(1) := 10; 8 r(2) := 20; 9 10 for i in ( select * from table(r) 11 ) 12 loop 13 null; 14 end loop; 15 end; 16 17 end; 18 / Package body created.
在v11中,您需要将数据传输到嵌套表类型或全局临时表。
希望这有所帮助。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




