【问题标题】:Check SYS_REFCURSOR is null or not检查 SYS_REFCURSOR 是否为空
【发布时间】:2020-09-17 07:43:17
【问题描述】:

我是第一次使用存储过程,我有一个存储过程,它会进行一些检查以将 SYS_REFCURSOR 设置为 NULL。

create or replace PROCEDURE "proc"
(
    tableRec OUT SYS_REFCURSOR
)
.
.
BEGIN
.
.
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
        tableRec := NULL;
    END;

一旦运行,我需要在运行另一个 if 循环之前检查 tableRec 是否为空。 我尝试如下

BEGIN
    if tableRec = NULL then

但这不起作用。在其他地方,可以通过写入来检查一个数字是否为 itemCount,是否为 0

if itemCount = 0 then

谁能解释如何为 SYS_REFCURSOR 实现这一点,以及为什么它适用于数字而不是它。 这不是检查 SYS_REFCURSOR 是否为空(因为我在互联网上找到了有关它的信息),而是利用它设置为 NULL 的事实

【问题讨论】:

  • 我建议不要对 ref cursor 使用这种空检查。

标签: sql oracle stored-procedures plsql


【解决方案1】:

您需要使用IS NULL 来检查某些内容是否为空?

create or replace PROCEDURE proc (tableRec OUT SYS_REFCURSOR)
as
BEGIN

if tableRec is NULL then
    null;
end if;

END;
/

DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2013-07-18
    • 2013-07-12
    • 2013-07-27
    • 2015-08-09
    • 2017-06-14
    • 2017-10-07
    相关资源
    最近更新 更多