gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:15 25 4
gpt4 key购买 nike

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

我肯定需要以某种方式缓存初始结果集,以便函数可以重用它。我想做的是将第一个结果集放在一个集合中,将第二个结果集放在另一个集合中,然后通过 SQL 查询操作这些集合,就好像它们是真正的 SQL 表一样。

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

最佳答案

听起来像是临时表的工作:

CREATE GLOBAL TEMPORARY TABLE table_name (...) ON ...

ON 有两个选项,具有不同的影响:

  1. ON COMMIT DELETE ROWS 指定临时表将特定于事务。数据在表中一直保留到事务结束时间。如果您结束事务,数据库将截断表(删除所有行)。假设如果您提交或运行 ddl,则临时表中的数据将丢失。这是默认选项。

  2. ON COMMIT PRESERVE ROWS 指定临时表将特定于 session 。数据在表中一直保留到 session 结束时间。如果您结束 session ,数据库将截断表(删除所有行)。假设您在 SQL*Plus 中键入 exit,那么临时表中的数据将会丢失。

引用:

...但是您可能不需要使用临时表。派生表/内联 View /子查询(可能是流水线)可能会做你想做的事,但信息是模糊的,所以我不能推荐特定的方法。

关于sql - PL/SQL - 将两个结果集缓存到集合中并将它们连接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2328389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com