Sql 存储过程的顶点

Sql 存储过程的顶点,sql,oracle,stored-procedures,oracle-apex,Sql,Oracle,Stored Procedures,Oracle Apex,是否有人可以帮助将此apex查询转换为oracle存储过程?我不明白的是if语句,它不返回任何值。谢谢 DECLARE P_RESULT VARCHAR2(4000) ; BEGIN P_RESULT := 'SELECT /*+ RESULT_CACHE */ D.ORGANIZATION_NAME as ORG_NAME, UDD.FS_STATEMENT_NUM FS_STATEMENT_NUM,(select DOC_DATE_TIME FROM U_DOCUMENT UD WHER

是否有人可以帮助将此apex查询转换为oracle存储过程?我不明白的是if语句,它不返回任何值。谢谢

DECLARE
P_RESULT VARCHAR2(4000) ;
BEGIN

P_RESULT := 'SELECT /*+ RESULT_CACHE */  D.ORGANIZATION_NAME as ORG_NAME,
UDD.FS_STATEMENT_NUM FS_STATEMENT_NUM,(select DOC_DATE_TIME FROM U_DOCUMENT UD WHERE
UD.FS_STATEMENT_NUM = UUI.FS_STATEMENT_NUM AND UD.MISCELLANEOUS_NUM = ''0'') AS FILE_DATE, 

FROM U_DET D,
U_DOCUMENT_DET UDD,

where D.DET_TYPE=''O'' AND UDD.DET_NUM=D.DET_NUM
AND UDD.FS_STATEMENT_NUM=UUI.FS_STATEMENT_NUM
AND (UUI.MAT_DATE > ''' || to_date(local.pkg_bs_common.CHECK_FS_STATUS(:P5_DS_STATUS),'dd-mon-yyyy') || ''' OR UUI.MATURITY_DATE IS NULL)';

if :P5_ORGN_NAME is not null then 
P_RESULT := P_RESULT || ' AND (D.ORGANIZATION_NAME LIKE ''' || upper(:p5_ORGN_NAME) || '%'' OR D.FORMATTED_ORGANIZATION_NAME like
''' || local.pkg_bs_common.orgname_format(upper(:p5_ORGN_NAME)) || '%'')';
END IF;


--HTP.P(P_RESULT);
RETURN P_RESULT ;
END;

行中,如果:P5\u ORGN\u NAME不为空,则
,参数:P5\u ORGN\u NAME是页面五项P5\u ORGN\u NAME会话值的a。从apex开始,可以在块定义中作为参数传递

如果需要在会话上下文中调用该过程,可以将该行替换为

如果(V('P5_ORGN_NAME')不为空,则

如果(APEX_UTIL.GET_SESSION_STATE('P5_ORGN_NAME'))不为空,则

代码中的每个:P5_ORGN_NAME或:P5_DS_STATUS调用也是如此

但在此之前,您应该将其全部包装为:

if(APEX_CUSTOM_AUTH.IS_SESSION_VALID) then
    /*your code here*/
end if;
以确保始终存在有效会话