【发布时间】:2021-04-26 18:39:37
【问题描述】:
我在包中有一个返回 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;
这对我不起作用。我该怎么做。
【问题讨论】:
-
您为什么要这样做?您当然可以打开并返回具有不同结构的游标,当调用者从中获取时将返回 0 行。但是这样做会显着增加调用此过程的代码的复杂性。也许您真的只想在您的
SELECT上有一个WHERE子句,导致它在某些情况下不返回任何行? -
您在代码中用
TRUE替换的布尔语句是什么?你能把它移到SELECT中的WHERE子句中,然后完全删除IF/ELSE吗?
标签: sql oracle plsql cursor plsql-package