sql - 如何在 OUT SYS_REFCURSOR 中返回 null
问题描述
我在包中有一个返回 SYS_REFCURSOR 的过程,我想根据条件返回 null 或空,不知道该怎么做。
PROCEDURE test( id_number IN VARCHAR2,
resultIN OUT SYS_REFCURSOR) AS
BEGIN
if true then
OPEN resultIN FOR
SELECT
fieldsValue
from TableName;
ELSE
Return empty resultIN ;
END IF;
END;
这对我不起作用。我怎么能这样做。
解决方案
您可以按如下方式使用假查询:
OPEN resultIN FOR
select * from dual where 1=2;
-- if you want one row also then use
OPEN resultIN FOR
select case when 1=2 then 1 end as dummy_row from dual;
使用它很重要,OPEN resultIN FOR
否则将使用它的应用程序将直接抛出关闭游标错误。(光标未打开。)
推荐阅读
- java - Java 应用程序间歇性崩溃 - 为什么
- angular - Angular Effect 没有被调用
- swift - 在 Swift 调试器中,我如何查看捕获到异常的位置?
- javascript - CSS和js模板,在同一个窗口中打开窗口
- ios - NativeScript 只能在 Xcode 6.0 或更高版本中运行
- java - Java System.in、换行符和解析命令行
- excel - VBA宏每X行更改单元格内容
- matlab - 计算多个 FFT 的平均值
- vue.js - Vue - 子选择触发父方法
- python - SKLearn/Tabluar Data:如何处理包含除一种热编码以外的列表的 DataFrame 元素?