gpt4 book ai didi

oracle - 如何检查游标是否在oracle中返回任何记录?

转载 作者:行者123 更新时间:2023-12-04 04:53:42 26 4
gpt4 key购买 nike

我有以下使用游标的存储过程。根据游标是否返回任何记录,我需要进行一些处理。

但是我不确定如何检查游标是否返回任何记录。

CREATE OR REPLACE PROCEDURE SP_EMPLOYEE_LOOKUP_BY_EMP_ID
(
IN_USER_ID IN NUMBER,
IN_EMPLOYEE_ID NUMBER,
IN_HC_AS_ON_DATE VARCHAR2,
emp_cursor OUT SYS_REFCURSOR
)
IS

CURSOR employees IS
SELECT * FROM EMPLOYEE e;

BEGIN

if(record exist ) then

FOR employee IN employees
LOOP

// do something

END LOOP;
else if employees is empty then
// do something else

END;

最佳答案

如果不打开游标就无法检查游标是否返回了记录。
(请参阅here)
因此,您可以进行一些快速查询,以查看是否有记录(例如,使用count),

或者,您可以这样做:

CREATE OR REPLACE PROCEDURE SP_EMPLOYEE_LOOKUP_BY_EMP_ID
(
IN_USER_ID IN NUMBER,
IN_EMPLOYEE_ID NUMBER,
IN_HC_AS_ON_DATE VARCHAR2,
emp_cursor OUT SYS_REFCURSOR
)
IS

is_found_rec boolean := false;

CURSOR employees IS
SELECT * FROM EMPLOYEE e;

BEGIN

FOR employee IN employees
LOOP

is_found_rec := true;

// do something

END LOOP;

if not is_found_rec then
// do something else
end if;

END;

关于oracle - 如何检查游标是否在oracle中返回任何记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10814111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com