0
根据用户输入,我的程序需要打开不同的光标,但执行相同的操作。由于游标将从不同的表中获取数据,因此我无法将查询合并为一个,或者使用参数化游标。无论如何,我们可以在不使用refcursor的情况下执行以下操作?有条件地打开不同的光标并执行相同的动作
DECLARE
p_cond NUMBER;
CURSOR c1 IS
SELECT 'a' txt FROM dual; -- table A
CURSOR c2 IS
SELECT 'b' txt FROM dual; -- table B
BEGIN
p_cond := 1;
FOR tmp IN decode(p_cond, 1, c1, c2) loop -- this of course doesn't work
dbms_output.put_line(tmp.txt);
END loop;
END;
/
谢谢!!
感谢您的建议,但我尽量避免refcursor,因为我的查询相当复杂且成本高。最后我设法通过使用联合来结合查询(我已经完全忘记了)。 – noobie