2016-12-01 2 views
0

아래 함수 코드를 실행하려고하면 Oracle Apex 5 SQL 명령이이 오류를 표시합니다. 'ORA-24344 : 컴파일 오류가 발생했습니다.'오라클 APEX 5 Create 기능 ERROR, 무엇일까요?

모든 대문자로 쓰려고했지만 여전히 문제가 나타납니다. 내가 잘못했다고 생각하니? 도움말 정말 감사하겠습니다.

CREATE OR REPLACE FUNCTION al_auth_authentication (p_username IN VARCHAR2, p_password IN VARCHAR2) 
    RETURN boolean 
    IS 
    1_user AL_USER_LOGIN.USER_NAME%type := UPPER(p_username); 
    1_pwd AL_USER_LOGIN.USER_PASSWORD%type; 
    1_id AL_USER_LOGIN.USER_ID%type; 
    BEGIN 
    SELECT USER_ID, USER_PASSWORD 
    INTO 1_id, 1_pwd 
    FROM AL_USER_LOGIN 
    WHERE UPPER(USER_NAME) = 1_user; 
    RETURN 1_pwd = dbms_crypto.hash (UTL_I18N.string_to_raw(p_password || 1_id || UPPER(p_username), 'AL32UTF8'), dbms_crypto.hash_sh1); 
    EXCEPTION 
    WHEN no_data_found then return false; 
    END al_auth_authentication; 

답변

0

PL/SQL 변수 (그리고 일반적 Oracle identifiers)는 그렇게 1_user, 1_pwd1_id와 유효하지 않은 숫자로 시작할 수있다. 아마도 l_user, l_pwdl_id을 의미할까요?

그래도 전체 컴파일 오류를 포함시켜야합니다. SQL Developer 또는 PL/SQL Developer 또는 SQL*Plus과 같은 컴파일 오류를 강조하는 개발 도구에서 컴파일하거나 show errors 명령을 사용하거나 아니면 user_errors (또는 소유자로 연결되지 않은 경우 all_errors)을 쿼리 할 수 ​​있습니다.

COBOL에서 작업하지 않는 한 블록 대문자로 코딩 할 필요가 없으므로 코딩하지 마십시오.

+0

안녕하세요, 감사합니다. 그러나 변수의 이름을 변경해도 아무 효과가 없으며 여전히 동일한 오류가 발생합니다. 나는 완전한 컴파일 오류에 대해 확신이 없습니다. PLS-00103 : 심볼 "SELECT"와 PLS-00103 : 심볼 "1"이 있습니다 ... "1을 수정했습니다. –

+0

컴파일 오류를 강조하는 개발 도구에서 컴파일하거나 user_errors (또는 소유자로 연결하지 않은 경우 all_errors)를 쿼리하십시오. btw에는 '1_'(즉, 숫자 '1')로 시작하는 3 개의 변수가 있습니다. 아마도 당신은'l_' (문자 'L')을 의미했을 것입니다. –

+0

또한 'PLS-00201 : 식별자'DBMS_CRYPTO '를 선언해야 함' –

관련 문제