2016-12-01 4 views
0

SQL-команды Oracle Apex 5 дают эту ошибку, когда я пытаюсь запустить приведенный ниже код функции: «ORA-24344: успех с ошибкой компиляции»Oracle APEX 5 Create Function 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_pwd и 1_id не действительны. Возможно, вы имели в виду l_user, l_pwd и l_id?

Вы должны включить полную ошибку компиляции в свой вопрос. Вы можете скомпилировать его в инструменте разработки, который выделяет ошибки компиляции, такие как SQL Developer или PL/SQL Developer, или в SQL*Plus, и использовать команду show errors, или просто запросить user_errors (или all_errors, если вы не подключены как владелец).

Нет необходимости вводить код в блок-столицах, если вы не работаете в COBOL, поэтому, пожалуйста, не делайте этого.

+0

Hi, спасибо. Однако изменение имени переменной не повлияло и по-прежнему вызывает ту же ошибку. Я не уверен в полной ошибке компиляции, я просто получил это «PLS-00103: встретил символ« SELECT »и PLS-00103: встретил символ« 1 »...« Я исправил 1, хотя –

+0

Вы можете либо скомпилируйте его в инструменте разработки, который выделяет ошибки компиляции, либо запрашивает user_errors (или all_errors, если вы не подключены как владелец). btw есть три переменные, начинающиеся с '1_' (т. е. цифры« один »). Возможно, вы имели в виду 'l_' (буква« L »). –

+0

В нем также говорится: «PLS-00201: идентификатор« DBMS_CRYPTO »должен быть объявлен« –

Смежные вопросы