Ari*_*iod 2 sql database oracle collections plsql
我有两个非常大的表,我需要从这些表中处理一个小的结果集.但是,处理是在几个函数中完成的,函数必须进行一些连接才能以适当的方式格式化数据.
我肯定需要以某种方式缓存初始结果集,以便它可以被函数重用.我想要做的是将第一个结果集放在一个集合中,将第二个结果集放在另一个集合中,然后通过SQL查询操作这些集合,就好像它们是真正的SQL表一样.
你能建议怎么做吗?
听起来像临时表的工作:
CREATE GLOBAL TEMPORARY TABLE table_name (...) ON ...
Run Code Online (Sandbox Code Playgroud)
将ON有两个选择,具有不同的影响:
ON COMMIT DELETE ROWS指定临时表将是特定于事务的.数据在表内持续到交易结束时间.如果结束事务,数据库将截断表(删除所有行).假设您发出提交或运行ddl,则临时表中的数据将丢失.它是默认选项.
ON COMMIT PRESERVE ROWS指定临时表将是特定于会话的.数据在表内持续到会话结束时间.如果结束会话,数据库将截断表(删除所有行).假设您在SQL*Plus中键入exit,那么临时表中的数据将丢失.
参考:
...但您可能不需要使用临时表.派生表/内联视图/子查询(可能是流水线)可能会做你想要的,但信息含糊不清,所以我不能推荐一种特定的方法.
| 归档时间: |
|
| 查看次数: |
3313 次 |
| 最近记录: |