存储过程的顶点
APEX to a STORED PROCEDURE
有人可以帮助将此 apex 查询转换为 oracle 存储过程吗?我不明白的部分是它没有 return 任何值的 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;
在行 if :P5_ORGN_NAME is not null then
中,参数 :P5_ORGN_NAME 是第 5 页项目 P5_ORGN_NAME 会话值的 bind variable。其中,运行 从顶点开始,您将作为块定义中的参数传递。
如果您需要在会话上下文中调用该过程,您可以将该行替换为
if (V('P5_ORGN_NAME') is not null) then
或
if (APEX_UTIL.GET_SESSION_STATE('P5_ORGN_NAME')) is not null then
代码中的每个 :P5_ORGN_NAME 或 :P5_DS_STATUS 调用也是如此。
但在此之前,您应该将其全部包裹起来:
if(APEX_CUSTOM_AUTH.IS_SESSION_VALID) then
/*your code here*/
end if;
确保始终存在有效会话。
有人可以帮助将此 apex 查询转换为 oracle 存储过程吗?我不明白的部分是它没有 return 任何值的 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;
在行 if :P5_ORGN_NAME is not null then
中,参数 :P5_ORGN_NAME 是第 5 页项目 P5_ORGN_NAME 会话值的 bind variable。其中,运行 从顶点开始,您将作为块定义中的参数传递。
如果您需要在会话上下文中调用该过程,您可以将该行替换为
if (V('P5_ORGN_NAME') is not null) then
或
if (APEX_UTIL.GET_SESSION_STATE('P5_ORGN_NAME')) is not null then
代码中的每个 :P5_ORGN_NAME 或 :P5_DS_STATUS 调用也是如此。
但在此之前,您应该将其全部包裹起来:
if(APEX_CUSTOM_AUTH.IS_SESSION_VALID) then
/*your code here*/
end if;
确保始终存在有效会话。