Oracle apex 5.1 使用 pl/sql 更改用户密码

Oracle apex 5.1 change user password with pl/sql

我想知道您如何在 oracle apex 中更改用户密码。目前,我正在尝试在用户存在且已填写重置密码字段的过程中使用此 pl/sql 代码。

if APEX_UTIL.GET_USERNAME(p_userid => :P5_ID) IS NOT NULL AND :P5_WACHTWOORD IS NOT NULL
then
    apex_util.edit_user(
        p_user_id => &P5_ID.,
        p_new_password => '&P5_WACHTWOORD.'
    );
end if;

但是 apex 一直给我这个错误:PLS-00306: wrong number or types of arguments in call to 'EDIT_USER'.

我尝试在 p_web_password 参数中添加旧密码以防 apex 需要这个。我仍然遇到同样的错误。

以防万一我做错了。我刚开始使用 apex,我正在尝试使用默认身份验证,但我也想在我自己的数据库中存储更多关于同一用户的信息。

我决定使用我的数据库生成的 userid 作为顶点 userid,这样我就可以跟踪哪个用户登录了。这是正确的方法还是有更好的选择?

粗略浏览 API 的文档可以看出 p_user_name 也是强制输入。

    APEX_UTIL.EDIT_USER (
        p_user_id                      IN                   NUMBER,
        p_user_name                    IN                   VARCHAR2,
        p_first_name                   IN                   VARCHAR2    DEFAULT NULL,
        p_last_name                    IN                   VARCHAR2    DEFAULT NULL,
        p_web_password                 IN                   VARCHAR2    DEFAULT NULL,
...

http://docs.oracle.com/database/apex-5.1/AEAPI/EDIT_USER-Procedure.htm#AEAPI117

您有什么理由不对实际参数值使用绑定变量吗?

p_user_id => :P5_ID