powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не компилируется в SQLPLUS
12 сообщений из 12, страница 1 из 1
Не компилируется в SQLPLUS
    #39914669
EVall2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!

Пишу патч. Запускаю через SQLPLUS. Тело пакета не компилируется, остается инвалидом, выдает ошибку:

Error: PLS-00103: Encountered the symbol "YYYY" when expecting one of the following:

* & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || multiset member submultiset
Line: 60
Text: DATE_FORMAT_4 CONSTANT VARCHAR2(7) := 'YYYY.MM';

Запускаю этот же скрипт в PL/SQL developer. Или просто компилирую там body этого пакета. Все компилится без ошибок, вуаля.

Строку эту вообще ставлю под комментарий
--Text: DATE_FORMAT_4 CONSTANT VARCHAR2(7) := 'YYYY.MM';
Та же самая картина, в SQLPLUS ругается на эту же строку, хотя она в комментах, в PL/SQL developer проблем нет никаких.

Если убрать строку, начинает последовательно докапываться до последующих строк через SQLPUS, в PL/SQL developer опять проблем нет никаких.
Не могу понять, в чем фокус.
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39914676
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Error: PLS-00103: Encountered the symbol "YYYY" when expecting one of the following:
      
          * & = - + ; < / > at in is mod remainder not rem
          <an exponent (**)> <> or != or ~= >= <= <> and or like like2
          like4 likec between || multiset member submultiset
Line: 60
Text: DATE_FORMAT_4        CONSTANT VARCHAR2(7)  := 'YYYY.MM';

Приведенный текст не имеет отношения к sqlplus.
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39914687
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EVall2,
вероятнее всего, формат даты пишите строкой, а надо явно преобразовать to_date . PL/SQL Developer делает это за вас, поэтому и ошибки не возникает.
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39914710
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg M.Ivanov
вероятнее всего, формат даты пишите строкой
Пальцем в небо. Очевидно, что это результат некорректного с точки зрения компилятора завершения строки. Может быть из-за того, что инструмент некорректно читает файл скрипта, а может быть из-за некорректной работы с sqlplusовскими подстановками, завершением блока текста, непереносом строк, пустострок и т.п.
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39914769
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EVall2,

LIST 55 65

+ анализ 59-й,60,61 строк

можно отдельно протестить в плюсе етот кусочек

зи
можно и сюда выложить 55-65 стоки

pss
возможно в текст закрался какой-то "неотображаемый" символ


.....
stax
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39914782
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EVall2

Строку эту вообще ставлю под комментарий
--Text: DATE_FORMAT_4 CONSTANT VARCHAR2(7) := 'YYYY.MM';
Та же самая картина , в SQLPLUS ругается на эту же строку, хотя она в комментах, в PL/SQL developer проблем нет никаких.

Если убрать строку, начинает последовательно докапываться до последующих строк через SQLPUS, в PL/SQL developer опять проблем нет никаких.
Не могу понять, в чем фокус.


ОООООО! вспомнил

99% что нет закрывающей кавычки (кто-то/что-то сожрал)
кавычка перед YYYY закрывает предыдущую

ищите кавычки

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> ed
Wrote file afiedt.buf

  1  declare
  2  n varchar2(10) :='aaa'||'ddd'';
  3  --DATE_FORMAT_4 CONSTANT VARCHAR2(7) 'YYYY.MM';
  4  o number :='a';
  5  begin
  6   dbms_output.put_line('xxx'');
  7   null;
  8* end;
SQL> /
--DATE_FORMAT_4 CONSTANT VARCHAR2(7) 'YYYY.MM';
                                      *
ERROR at line 3:
ORA-06550: line 3, column 39:
PLS-00103: Encountered the symbol "YYYY" when expecting one of the following:
* & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || member submultiset



.....
stax
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39915269
EVall2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, проблема со строками, где есть апострофы. Но не потому, что не хватает какого-то конечного (иначе бы в sql/pl developer не компилилось бы без проблем), а, возможно, потому что при работе sqlplus какая-то проблема с обработкой символов. Какая, пока понять не получается.
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39915289
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выложите уже test case.
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39915298
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EVall2,

надо искать

гляньте на на строку перед 'YYYY содержащую кавычку

бывало такое из-за "констант" с ' (не задваивал)

зы
надеюсь "подстановок" через амперсант (&) с кавычкой нет

....
stax
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39915305
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
Выложите уже test case.


Line: 60

60-строк, некоторые могут быть секретными

надо искать в строках повыше 60-й с '

.....
stax
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39915334
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например, длина некой строки из 1..60 более 500
...
Рейтинг: 0 / 0
Не компилируется в SQLPLUS
    #39915344
EVall2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое всем спасибо!
Долго искала, но нашла)
Проблема была в том, что патч сохраняла в кодировке ANSI, а надо было в UTF-8, под которой и запускался скрипт в sqlplus.
Не понимала, в чем проблема, потому что ERROR выкидывал ссылку на строку с заключенными в апострофы латинскими символами, а несколько строками выше была константа с кириллицей. И вот после этой кириллицы косились дальнейшие строки, где встречался апостроф.
Ура, ура, спасибо за подсказки)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не компилируется в SQLPLUS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]