select *
from tab
where ...
现在我想用本地范围保存选择,因此生命周期仅限于过程本身(就像C函数中的局部变量一样)。我怎样才能达到这样的效果?
基本上我有一个类表安排表,如下所示:
Schedule
--------------------------------------------------------
subject_code | subject_name | class_starting_date | starting hour | ending hour | day_of_week
所以我做了一个查询,让所有主题都安排在当前的学术年度,我需要在结果集的每一行使用next_day函数来填充下周安排的实际类的表。 我的想法是: 我得到了需要在下周安排查询的类,将结果保存到某个地方,然后使用next_day通过for循环(因为我需要在课程中发生的实际日期)填充" class_occurence& #34;表。我不确定这是正确的思考方式,可能有一些东西可以在不保存结果的情况下执行此工作,也许是光标,谁知道......
答案 0 :(得分:1)
Global Temporary tables是一个很好的解决方案..只要您知道要插入的数据的结构(有多少列和什么数据类型),您就可以插入到全局临时表中。数据只能由执行插入的会话查看。可以使用某些选项删除或提交数据。
CREATE GLOBAL TEMPORARY TABLE my_temp_table (
column1 NUMBER,
column2 NUMBER
) ON COMMIT DELETE ROWS;
这对我来说非常有用,我需要汇总数据,但只能在很短的时间内完成。
编辑:数据是本地和临时的,临时表总是在那里。 如果你想在程序中将表放在内存中,这是另一种解决方案,但有点复杂。