在APEX中重置用户名

时间:2015-10-17 07:54:44

标签: oracle plsql oracle-apex

如果您在APEX中有自定义身份验证,则可以在自己的自定义用户表上创建表单。

我的问题是,当登录用户更改自己的用户名时,APEX会变为总wookiee。

所以我尝试制作一个触发器(至少我希望)重置用户名变量:

触发器代码 注意:此触发器是在不在桌面上的视图上进行的

CREATE OR REPLACE TRIGGER t_change_student
INSTEAD OF UPDATE ON view_student
BEGIN
    UPDATE user SET email = :new.email, password = :new.password WHERE email = LOWER(:old.email);
    UPDATE student SET fk_study = :new.fk_study, name = :new.name, bsn = :new.bsn WHERE pk_huurder = :new.pk_huurder;
    APEX_UTIL.SET_USERNAME(
        p_userid     => APEX_UTIL.GET_USER_ID(:old.email),
        P_username   => :new.email);
    -- :APP_USER := :new.email;
    -- apex_authentication.send_login_username_cookie (p_username => lower(:new.email) );
    -- apex_application.g_user := :new.email;
END;

但是当我更改用户名时:APP_USER仍包含旧用户名。那么如何设置:APP_USER?

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你试图从触发器内部改变它,你需要从顶点会话中做到这一点。尝试在您的顶点页面中创建 Onload 进程,并使用wwv_flow.g_user:=new_email更改登录用户。