#oracle #pls-00103
#Oracle #pls-00103
Вопрос:
это код, который я запустил в разработчике Oracle SQL, и следующая ошибка: это очень простой запрос, так что же в нем не так?
DECLARE zero varchar(20); DECLARE emptys; begin zero := '0'; emptys := null; IF(emptys = zero) then DBMS_OUTPUT.put_line('yes'); ELSE dbms_output.Put_line('no'); end if; end;
Ошибка, начинающаяся со строки : 1 в команде — ОБЪЯВИТЕ нулевой varchar(20); ОБЪЯВИТЬ пустыми; начните с нуля := ‘0’; пусто := null;
IF(emptys = zero) then DBMS_OUTPUT.put_line('yes'); ELSE dbms_output.Put_line('no'); end if;
конец;
Отчет об ошибке — ORA-06550: строка 2, столбец 5: PLS-00103: Обнаружен символ «ОБЪЯВИТЬ» при ожидании одного из следующих:
функция begin процедура pragma подтип типа текущее удаление курсора существует до того, как символ «begin был вставлен перед «ОБЪЯВЛЕНИЕМ» для продолжения. ORA-06550: строка 13, столбец 74: PLS-00103: Обнаружен символ «конец файла» при ожидании одного из следующих:
( начальный случай объявляет выход из конечного исключения для goto, если в цикле mod null прагма raise возвращает значение выберите обновить, пока с lt; 00000 — «строка %s, столбец %s:n%s» *Причина: Обычно ошибка компиляции PL/SQL. *Действия:
Ответ №1:
DECLARE
указывает начало раздела объявления переменной. У вас был бы только один такой раздел. Вы не повторяете это ключевое слово для каждой переменной, которую вы объявляете.
Вы не указали тип данных для переменной emptys
. Я предполагаю, что вы хотите, чтобы это было varchar2(20)
DECLARE zero varchar(20); emptys varchar2(20); begin zero := '0'; emptys := null; IF(emptys = zero) then DBMS_OUTPUT.put_line('yes'); ELSE dbms_output.Put_line('no'); end if; end;