Oracle 如何从存储过程返回空游标?
我将存储过程的Oracle 如何从存储过程返回空游标?,oracle,stored-procedures,cursor,ref-cursor,Oracle,Stored Procedures,Cursor,Ref Cursor,我将存储过程的OUT参数作为REF游标。基于特定条件,我希望返回一个结果集(已经实现)。但是,当条件失败时,如何返回空游标?没有例外吗?仅粘贴伪代码: IF condition = true THEN OPEN OUT_CUR FOR Select Some query ELSE Return empty OUT_CUR END IF 你可以试试这个 IF condition = true THEN OPEN OUT_CUR FOR Select Som
OUT
参数作为REF游标
。基于特定条件,我希望返回一个结果集(已经实现)。但是,当条件失败时,如何返回空游标?没有例外吗?仅粘贴伪代码:
IF condition = true THEN
OPEN OUT_CUR FOR
Select Some query
ELSE
Return empty OUT_CUR
END IF
你可以试试这个
IF condition = true THEN
OPEN OUT_CUR FOR
Select Some query;
ELSE
OPEN OUT_CUR FOR
Select * from mtable where 1=2;
END IF
return OUT_CUR;
还有其他返回空集的标准方法吗?据我所知,这与@Satya八年前的建议之间的唯一区别是,您使用
unest(数组[1,2])arr where false
,而Satya使用mtable where 1=2
。您能否编辑您的答案,以讨论为什么您的方法可能比Satya公认的答案更可取?因为不需要任何表格来返回空游标。
IF condition = true THEN
OPEN OUT_CUR FOR
Select Some query
ELSE
OPEN OUT_CUR FOR select * from unnest(array[1,2]) arr where false
END IF