如何在oracle apex中获取依赖于app_user的报告中的数据?

问题描述 投票:0回答:2

我有一个名为 EVENTS 的表,其中包含事件详细信息(id、事件名称、事件类型、日期、位置、user_id)。

当我登录应用程序并转到事件页面时,我希望只能看到我的事件,并且每个用户只能看到他的事件。

我正在使用

       EVENTS.EVENT,
       EVENTS.EVENT_TYPE,
       EVENTS.LOCATION,
       EVENTS.EVENT_OWNER,
       EVENTS.EVENT_DATE,
       EVENTS.USER_ID
  from EVENTS
  WHERE EVENTS.USER_ID= :APP_USER_ID; ```
but it is not giving me the desired result.It give me no data found 
Can anyone help me, please?
oracle plsql oracle-apex
2个回答
0
投票

当前登录的应用程序用户的正确替换字符串是

:APP_USER
(不是 APP_USER_ID )。检查 docs 以获取所有内置替换字符串的列表。请注意,变量 APP_USER 包含大写的用户name

如果 events.user_id 列包含 APP_USER 值,则以下内容应该可以正常工作。

WHERE EVENTS.USER_ID= :APP_USER

0
投票

正如 Koen 所解释的,APP_UER_ID 不是替换字符串。但是,从列名中,我了解到您在表中存储的是用户 ID,而不是用户名。因此,您需要为查询进行内部选择:```

SELECT *
       EVENTS.EVENT,
       EVENTS.EVENT_TYPE,
       EVENTS.LOCATION,
       EVENTS.EVENT_OWNER,
       EVENTS.EVENT_DATE,
       EVENTS.USER_ID
FROM EVENTS
WHERE EVENTS.USER_ID= (select ID from apex_users where username = :APP_USER);
© www.soinside.com 2019 - 2024. All rights reserved.