如何获取已登录的Oracle Apex用户ID或用户名以将其写入表单中的文本字段

ebdffaop  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(149)

我试图获取并将更新了表单中的值的userID写入表中。
因此,如果我以Bob的身份登录,那么当用户选择Update时,我希望P3_USERID列显示Bob或我的ID。
Form

select * from SYSUSER where user_id = :APP_USER;```

[Error](https://i.stack.imgur.com/NnUxz.png)
14ifxucb

14ifxucb1#

是否可以假设您正在尝试捕获审计数据。谁在此表中创建/更新了一行,以及何时发生的。如果是这样的话,那么最好的做法是在顶点有一个触发器为您做。下面是一个示例(使用apex sql workshop > utilities > quicksql生成-设置包括审计列):

-- create tables
create table mytable (
    id                             number generated by default on null as identity 
                                   constraint mytable_id_pk primary key,
    column1                        varchar2(100 char),
    created                        date not null,
    created_by                     varchar2(255 char) not null,
    updated                        date not null,
    updated_by                     varchar2(255 char) not null
)
;

-- triggers
create or replace trigger mytable_biu
    before insert or update 
    on mytable
    for each row
begin
    if inserting then
        :new.created := sysdate;
        :new.created_by := coalesce(sys_context('APEX$SESSION','APP_USER'),user);
    end if;
    :new.updated := sysdate;
    :new.updated_by := coalesce(sys_context('APEX$SESSION','APP_USER'),user);
end mytable_biu;
/

然后你的顶点表单,在插入时不要包含那些页面项目,并在更新时将它们设置为只读。

相关问题