【发布时间】:2015-03-16 14:48:10
【问题描述】:
我是甲骨文的新手,所以我提前为这个简单的问题道歉。 所以我有这个程序,在我运行查询时,我想保存查询结果以供进一步使用,特别是我想运行一个 for 循环,它将逐行获取我的选择并将一些值复制到另一个表中。目的是从父表开始填充子表(弱实体)。 为此,让我们假设我有一个查询:
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”表。我不确定这是不是正确的思维方式,可能有一些东西可以在不先保存结果的情况下执行这项工作,也许是一个光标,谁知道......
【问题讨论】:
-
我不知道这是否是做这种事情的最佳方式,这是我的第一个任务,因为我习惯于使用 c/java/c++ 和其他类似语言跨度>
-
您是否需要多次迭代同一个数据集?您是否必须逐行执行此操作 - 如果您要将数据复制到另一个表,您可以
insert ... select作为一个操作,还是先对数据做一些复杂的事情?
标签: oracle stored-procedures plsql