小编典典

PL / SQL-将两个结果集缓存到集合中并将它们连接在一起?

sql

我有两个非常大的表,我需要从这些表中处理一个小的结果集。但是,每个处理都是在几个函数中完成的,并且函数必须进行一些连接才能以正确的方式格式化数据。

我肯定需要以某种方式缓存初始结果集,以便功能可以重复使用它。我想做的是将第一个结果集放在一个集合中,将第二个结果集放在另一个集合中,然后通过SQL查询将这些集合当作真实的SQL表进行操作。

您能建议如何做到这一点吗?


阅读 171

收藏
2021-04-28

共1个答案

小编典典

您需要创建一个架构级别的类型(不在包内)作为嵌套表。您可以填充它们,然后可以使用“ table()”语句在查询中将它们用作普通表。

链接说明了您的需求。一个简单的例子

create type foo as table of number;-- or a record type, data%rowtype, whatever
...
myfoo1 foo := foo (1,2,3);
myfoo2 foo := foo(3,4,5)

select column_value
into bar
from table(foo1) join table(foo2) using (column_value)
2021-04-28