Oracle APEX 5创建函数错误,它可能是什么?

时间:2016-12-01 14:37:40

标签: oracle plsql oracle-apex-5

当我尝试运行以下功能代码时,Oracle Apex 5 SQL命令出现此错误:'ORA-24344:编译错误成功'

我尝试过全部大写,但问题仍然存在。你觉得我做错了什么?非常感谢帮助。

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;

1 个答案:

答案 0 :(得分:0)

PL / SQL变量(以及一般的Oracle identifiers)不能以数字开头,因此1_user1_pwd1_id无效。也许你的意思是l_userl_pwdl_id

但是,您应该在问题中包含完整的编译错误。您可以在突出编译错误的开发工具(例如SQL DeveloperPL/SQL Developer)或SQL*Plus中编译它,并使用show errors命令,或者只查询{ {1}}(如果您没有作为所有者关联,则为user_errors。)

除非你在COBOL工作,否则无需在大写字母中进行编码,所以请不要。