Last modified by Nefedenkova Viktoria on 2024/02/09 10:18

Show last authors
1 Ошибка PLS-00103 является сообщением об ошибке, которое может возникнуть при компиляции программного кода на языке PL/SQL. Эта ошибка говорит о том, что в коде встретился символ, ожидался один из определенного списка символов. Ошибка PLS-00103 обычно указывает на нарушение синтаксиса или неправильное использование определенного ключевого слова или оператора.
2
3 [[image:1.jpg||height="70%" width="70%"]]
4
5 Самое частое заблуждение при возникновении ошибки PLS-00103 заключается в том, что она указывает на самое первое место, где был встречен символ, который не был ожидаемым. Однако, на самом деле, символ, который инициирует ошибку, может находиться гораздо дальше в коде, но ошибка заявлена, когда PL/SQL не может продолжить обработку после этого символа.
6
7 Например, если в коде встретится символ «+», ожидается, что будет следовать операнд для выполнения арифметической операции. Ошибка PLS-00103 возникнет, если операнд отсутствует или имеет неправильный формат.
8
9 Для исправления ошибки PLS-00103 необходимо внимательно изучить код и найти место, где был встречен неожиданный символ. После этого нужно проверить контекст, в котором происходит его использование, чтобы понять, какой символ ожидается. Далее нужно внести необходимые исправления, чтобы код соответствовал требованиям языка PL/SQL.
10
11 Чтобы избежать ошибок PLS-00103, рекомендуется тщательно проверять код перед его компиляцией и следовать рекомендациям по правильному использованию скобок, операторов и ключевых слов.
12 Например, в данном случае нужно открыть запрос действия и убрать лишний END:
13
14 [[image:2.jpg||height="70%" width="70%"]]
15
16 [[image:3.jpg||height="70%" width="70%"]]
17
18 Старые версии каким-то магическим образом обрезали блок по него и он успешно выполнялся, но НЕ делал задуманные в нём проверки, что могло приводить к неверным данным.
19 Удалили лишний end - все версии работают как задумано.
20
21 Код, который падает, есть в
22 OBJ_ID PATH
23 ------------- ------------------------------------------------------------------------------------------------------------------------
24 9458 SQL1 <- Actions: Action_GFC <- Intrarea marfurilor (fara specificare) <- Documents: Intrari <- Documents: Marfa
25 5440 SQL1 <- Actions: Action_GFC <- Intrarea marfurilor <- Documents: Intrari <- Documents: Marfa
26 Что не сходится с названием действия.
27
28 А вообще, там после завершения анонимного блока есть ещё код, вот и ругается.
29
30 В старых версиях эта проблема не проявляется.
31
32 Это код в "Intrarea marfurilor (fara specificare)", который не менялся с 04.10.2017 15:30:05
33 И он не мог работать.
34
35 К новой версии нужен новый pkg_docs_util. Скачать его можно отсюда: [[package specification>>https://xwiki.una.md/bin/download/UNA/PLS%2D00103_error/pkgdocsutil.pkg.2.sql]], [[package body>>https://xwiki.una.md/bin/download/UNA/PLS%2D00103_error/pkgdocsutil.bdy.4.sql]], [[schema grants>>https://xwiki.una.md/bin/download/UNA/PLS%2D00103_error/schema.grants.sql]].