PLS-00103: Обнаружен символ «конец файла» в простом блоке обновления - PullRequest
5 голосов
/ 16 июня 2010

Следующий оператор Oracle:

 DECLARE ID NUMBER;
 BEGIN
  UPDATE myusername.terrainMap 
  SET playerID = :playerID,tileLayout = :tileLayout 
  WHERE ID = :ID
 END;

Дает мне следующую ошибку:

ORA-06550: line 6, column 15:
PL/SQL: ORA-00933: SQL command not properly ended
ORA-06550: line 3, column 19:
PL/SQL: SQL Statement ignored
ORA-06550: line 6, column 18:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

   ( begin case declare end exception exit for goto if loop mod
   null pragma raise return select update while with
   <an identifier> <a double-quoted>

Я в значительной степени растерялся.Это выглядит довольно простым утверждением.Если это поможет, у меня было аналогичное утверждение, которое выполняло INSERT, которое раньше работало, но сегодня сообщало мне то же самое.

Ответы [ 3 ]

4 голосов
/ 16 июня 2010

Добавьте точку с запятой после where id=:id

2 голосов
/ 17 июня 2010

У вас есть ряд проблем:

  1. Отсутствует точка с запятой (как увидел MJB)

  2. :ID относится квстроенная переменная, поэтому ваше локальное объявление (DECLARE ID NUMBER;) не используется.

  3. Вы используете имя переменной, которое (по-видимому) совпадает с именем столбца втвой стол.Если вы попытаетесь использовать локальную переменную ID, запрос все равно не будет использовать ее, если вы не используете метку блока.

При этом похоже, что вы отправляете идентификатор вв любом случае, как переменная связывания, так что, скорее всего, вам следует просто удалить объявление из блока.

0 голосов
/ 05 декабря 2014

В дополнение к предыдущему вы должны запретить пробелы между равными операциями: и значением как это:

SQL> BEGIN  
2    IF x > y THEN high := x; END IF;  -- correct

3    IF x > y THEN high := x; ENDIF;   -- incorrect

4  END;

5  /

END;
ERROR at line 4:
ORA-06550: line 4, column 4:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
if

посетите веб-сайт, чтобы узнать больше .... https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/fundamentals.htm#LNPLS002

...