我有一个名为 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?
当前登录的应用程序用户的正确替换字符串是
:APP_USER
(不是 APP_USER_ID )。检查 docs 以获取所有内置替换字符串的列表。请注意,变量 APP_USER 包含大写的用户name。
如果 events.user_id 列包含 APP_USER 值,则以下内容应该可以正常工作。
WHERE EVENTS.USER_ID= :APP_USER
正如 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);