0
是否有可能打开游标的IF
语句块中,像这样:甲骨文:打开内不同的相同光标IF语句
PROCEDURE CURSORIFSTATEMENT (param IN INT, iocursor IN OUT t_cursor)
IS
v_cursor t_cursor;
BEGIN
IF param = 1 THEN
OPEN v_cursor FOR
SELECT a.field
FROM table1 a
INNER JOIN table2 b ON b.fieldid = a fieldid;
io_cursor := v_cursor;
CLOSE v_cursor;
ELSIF param = 2 THEN
OPEN v_cursor FOR
SELECT a.field, c.field
FROM table1 a
INNER JOIN table2 b ON b.fieldid = a.fieldid
INNER JOIN table3 c ON c.fieldid = a.fieldid;
io_cursor := v_cursor;
CLOSE v_cursor;
END IF;
END CURSORIFSTATEMENT;
所以基本上,我们的目标将取决于哪个IF
填补光标声明是真实的。
是的,但只有当它是'REFCURSOR' .. – 2014-10-08 17:00:13
'io_cursor:= v_cursor;关闭v_cursor;'也许这是一个愚蠢的问题,但你关闭你将返回的光标? – 2014-10-08 17:11:29
+1 @MaheswaranRavisankar。只需声明一个'REF CURSOR'并在'IF-ELSE'构造中使用它。检查我的答案。 – 2014-10-08 17:46:05