Oracle apex 5.1使用pl / sql

时间:2017-10-01 16:15:03

标签: authentication plsql oracle-apex

我想知道如何更改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 param中添加旧密码,需要这个顶点。我仍然有同样的错误。

只是因为我完全错了。我刚刚开始使用apex而我正在尝试使用默认身份验证,但我还想在我自己的数据库中存储有关同一用户的更多内容。

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

1 个答案:

答案 0 :(得分:3)

粗略地看一下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