如何在where条件下使用app_user

时间:2019-08-29 08:10:35

标签: oracle oracle-apex oracle-apex-5

在条件返回空记录的地方使用v('APP_USER')

select FULL_NAME, EMAIL_ADDRESS from headcount where EMAIL_ADDRESS = v('APP_USER')

2 个答案:

答案 0 :(得分:1)

有3种方法可以在顶点会话中获取APP_USER的值。首选方法是绑定变量(:APP_USER),但是您也可以使用sys_context变量SYS_CONTEXT('APEX $ SESSION','APP_USER')或V函数(V('APP_USER'))。为了证明该方法有效,我使用以下查询创建了报告:

WITH app_user_tab AS (SELECT 'bind var' as type, :APP_USER as username FROM DUAL
UNION
SELECT 'context',SYS_CONTEXT('APEX$SESSION','APP_USER') FROM DUAL
UNION
SELECT 'v', v('APP_USER') FROM DUAL)
SELECT * FROM app_user_tab

我得到了3个相同的行。

这使我相信您的问题不是与应用程序用户有关,而是与headcount.email_address中的值有关。可能是:

  • 大小写不匹配。
  • headcount.email_address列中的前导/尾随控制字符

答案 1 :(得分:0)

您必须在sql中使用绑定变量。 V / NV函数用于编译后的代码中,例如视图,程序包和过程。

more info are here