2017-10-01 13 views
1

oracle apex에서 사용자 비밀번호를 변경하는 방법이 궁금합니다. . 현재 내가Oracle apex 5.1 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; 

사용자가 존재하고 비밀번호 재설정 필드가 채워 때 과정에서이 PL/SQL 코드를 사용하려고 해요 그러나 정점은 나에게이 오류주고 유지 : PLS-00306: wrong number or types of arguments in call to 'EDIT_USER'.

나는 노력을 p_web_password param에 이전 비밀번호를 추가하려면 꼭 필요한 비밀번호를 입력해야합니다. 나는 여전히 같은 오류가있다.

나는 완전히 잘못하고있다. 방금 Apex를 사용하기 시작했고 기본 인증을 사용하려고하지만 동일한 사용자에 대한 정보를 내 데이터베이스에 저장하려고합니다.

나는 그래서 사용자가 로그인을 추적 할 수 있습니다.이 올바른 방법인가 정점 useriduserid 내 데이터베이스 생성 사용하기로 결정 또는 거기 밖으로 더 나은 옵션입니다?

답변

2

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 
+0

감사합니다. 나는 디폴트 값을 전혀 알지 못했다. 나는 P5_ID와 & P5_ID 사이를 바꾸었다. 사용자를 추가 할 때 마지막으로 마지막 사용자와 작업하게하고 더 이상 변경하지 않기로 결정했습니다. 그게 내가 사용하지 않는 유일한 이유 : P5_ID – klokklok

+1

기본적으로 바인드 변수를 사용하여 & P1_ITEM을 남겨주세요. HTML의 구문은 & P1_ITEM! HTML을 사용하여 지금도 이스케이프 처리 할 수 ​​있습니다. SQL에 대한 바인드 변수 만 사용 http://www.grassroots-oracle.com/2012/02/apex-variables-in-sql.html 좋은 보안/성능 습관 IMHO – Scott