Oracle Apex中如何根据用户ID记录数据

How to record the data based on user ID in Oracle Apex

大家好我是 Oracle Apex 的新手,我想在 Oracle Apex 中根据用户 ID 记录数据。该应用程序有两个角色,即员工和经理。我想让员工登录到他们的帐户后,他们只能查看和更新​​自己的记录。除此之外,经理可以看到所有员工记录。记录数据已经在工作,但不是基于用户 ID。任何人都知道该怎么做?谢谢

记录数据的table结构

    CREATE TABLE  "TIMESHEET" 
       (    "ID" NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER  NOCYCLE  NOKEEP  NOSCALE  NOT NULL ENABLE, 
        "NO" VARCHAR2(50) NOT NULL ENABLE, 
        "CUSTOMER" VARCHAR2(50) NOT NULL ENABLE, 
        "DATE_" VARCHAR2(50) NOT NULL ENABLE, 
        "TIME" VARCHAR2(50) NOT NULL ENABLE, 
        "WORKING_HOUR" VARCHAR2(50) NOT NULL ENABLE, 
        "PIC" VARCHAR2(50) NOT NULL ENABLE, 
        "TOPIC" VARCHAR2(50) NOT NULL ENABLE, 
        "REMARK" VARCHAR2(50),
        "APP_USER" VARCHAR2(255),  

         PRIMARY KEY ("ID")
      USING INDEX  ENABLE
       )
    /

Data record (not based userid)

Data record (APP_User still empty)

记录创建记录的用户的最佳方式是在 table TIMESHEET 上使用触发器。这将使用在插入时进行更新的用户的值填充您在@Jeffrey Kemp 的评论后添加的列 APP_USER。

create or replace trigger timesheet_biu
    before insert 
    on timesheet
    for each row
begin
    :new.app_user := coalesce(sys_context('APEX$SESSION','APP_USER'),user);
end timesheet_biu;
/