【发布时间】:2015-03-16 12:01:57
【问题描述】:
我知道标题什么也没说...但论点有点“复杂”,无法在一行中解释。
我写的所有代码只是一个例子,我当前的代码来自其他表等,但行为是一样的。
我已经定义了一个像这样的游标:
CURSOR emp_cur (l_type)
IS
with emp_general AS (select *
from emp
where type = l_type),
emp_active AS (select *
from emp_geral
where status = ACTIVE_STATUS),
emp_inactive AS (select *
from emp_general
where status = INACTIVE_STATUS)
select distinct name, department
from emp_active
minus
select distinct name, department
from emp_inactive;
此游标采用过滤器 emp 类型的参数并减去以获取 ACTIVE - INACTIVE emp。
这个光标返回name和department。
现在必须用不同的“选择”语句声明不同的游标,例如:
select location
from emp_active
select location
from emp_active
我不想复制我的光标只是为了更改选择。 有办法做到这一点并避免代码重复(不使用 DynamicSQL - 在生产环境中难以调试)?
【问题讨论】:
-
我可以考虑使用 GTT。(全局临时表)。看我的回答。
-
您是说要使用同一个光标按类型或按位置查询员工吗?
-
你是否也意识到你的SQL是不必要的复杂可以大大简化?不过,我不确定这是否适用于您的真实查询。