create or replace
PROCEDURE SPGETROLELIST
(
P_APPCODE IN VARCHAR2
, P_USERROLE IN VARCHAR2
, CUR_RESULT OUT SYS_REFCURSOR
) AS

P_ApproveFlag char(1);

BEGIN

If P_USERROLE = 'M' Then
begin
P_ApproveFlag := 'R';
end;
Else
begin
P_ApproveFlag := '';
end;
End If;

open CUR_RESULT for
Select *
From Role
Where AppCode = P_APPCODE
And (ApproveStatus = 'P' or ApproveStatus = P_ApproveFlag)
And (Status <> 'A' Or (Status = 'A' And ApproveStatus Is Not Null));

exception
when no_data_found then
open CUR_RESULT for
select null
from Role
where 1 =2 ;


END SPGETROLELIST;