PLSQL-бессмысленная (?) Ошибка PLS-00103 в пакете и теле пакета

Я получаю то, что я считаю бессмысленной ошибкой для процедуры.

CREATE OR REPLACE PACKAGE reg AS
    TYPE ref_cursor IS ref cursor;
    ...
    FUNCTION show_enrollments RETURN ref_cursor;
    PROCEDURE return_prereqs
        (param_dept_code IN prerequisites.dept_code%type,
        param_course_no IN prerequisites.course_no%type);
>   PROCEDURE enroll
>       (param_sid IN enrollments.sid%type,
>       param_classid IN enrollments.classid%type,
>       err_msg OUT varchar(76));
    PROCEDURE delete_student
        (param_sid IN enrollments.sid%type);
    ...
END;
/
show errors

Ошибка, которую я получаю за пакет

 LINE/COL ERROR
 -------- -------
 31/23    PLS-00103: Encountered the symbol "(" when expecting one of the
          following:
          := . ) , @ % default character
          The symbol ":=" was substituted for "(" to continue.

И ошибка, которую я получаю для тела пакета

 LINE/COL ERROR
 -------- -------
 328/23   PLS-00103: Encountered the symbol "(" when expecting one of the
          following:
          := . ) , @ % default character
          The symbol ":=" was substituted for "(" to continue.

Это процедура в теле пакета

PROCEDURE enroll
    (param_sid IN enrollments.sid%type,
    param_classid IN enrollments.classid%type,
    err_msg OUT varchar(76)) 
IS...

Я делаю что-то глупое здесь? Я не вижу, что не так, и это довольно расстраивает.

2 ответа

Я уверен, что это err_msg OUT varchar(76) как нет VARCHAR тип данных в Oracle, но только VARCHAR2,

Пытаться:

PROCEDURE enroll
    (param_sid IN enrollments.sid%type,
    param_classid IN enrollments.classid%type,
    err_msg OUT varchar2(76)) 
IS...

См. Типы данных SQL в Справочнике по языку PL/SQL для получения дополнительной информации.

Здравствуйте, пожалуйста, удалите размер из процедуры следующим образом:

  PROCEDURE enroll
       (param_sid IN enrollments.sid%type,
       param_classid IN enrollments.classid%type,
       err_msg OUT varchar2);

здесь у меня также есть смена имени, но вы можете сохранить свой

С размером:

введите описание изображения здесь

После удаления размера:

введите описание изображения здесь

Другие вопросы по тегам