【发布时间】:2019-05-27 03:43:50
【问题描述】:
在运行存储过程以获取一些行时,首先我想验证查询是否会在发送结果之前返回一行,其次是否可以在不运行相同查询两次的情况下进行验证。
我正在使用游标来存储产生的结果,所以我尝试了游标属性%ROWCOUNT & %NOTFOUND。但这并不完全奏效。另外,我想这样做而不在光标上运行循环。
procedure MODULE_LIST_GK(p_module_Id IN MODULE_LIST.MODULE_ID% TYPE,
p_Error_Code out nvarchar2,
p_Error_Msg out nvarchar2,
p_Cursor out sys_refcursor) IS
BEGIN
OPEN p_Cursor FOR
SELECT A.MODULE_ID,
A.MODULE_NM,
A.AUTH_STATUS_ID
FROM MODULE_LIST A
WHERE A.MODULE_ID=p_module_Id;
SELECT COUNT(MODULE_ID)
INTO v_row_num
FROM MODULE_LIST A
WHERE A.MODULE_ID=p_module_Id;
IF v_row_num=0 THEN
p_Error_Code := SQLCODE;
p_Error_Msg := 'Does not Exists';
Return;
end IF;
EXCEPTION
WHEN OTHERS THEN
p_error_code:= SQLCODE;
p_error_msg := SQLERRM;
END MODULE_LIST_GK;
【问题讨论】:
标签: oracle stored-procedures plsql