PLS-00103: столкнулся с символом «конец файла» в простом блоке обновления

StackOverflow https://stackoverflow.com/questions/3056410

Вопрос

Следующее утверждение 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>

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

Это было полезно?

Решение

Добавить полутолон после where id=:id

Другие советы

Здесь у вас есть несколько проблем:

  1. Отсутствует полуолки (как Майб Пила)

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

  3. Вы используете имя переменной, который (видимо) - это то же имя, что и COLUM в вашей таблице. Если вы попытаетесь использовать свой локальный ID Переменная, запрос все еще не будет использовать его, если вы не используете ярлык блока.

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

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

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.orcle.com/cd/b28359_01/Appdev.111/b28370/fundamentals.htm#lnpls002.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top