ORA-00933: команда SQL не завершена должным образом (в простой инструкции вставки) - PullRequest
1 голос
/ 05 июля 2010

следующее простое утверждение:

INSERT INTO mydb.inventory (itemID) VALUES (:itemID) WHERE playerID = :ID;

Генерирует следующую ошибку:

ORA-00933: SQL command not properly ended

Я пробовал это без точки с запятой, а также с, но оба дают мне ошибку. Я уверен, что переменные также связаны.

Все мои поиски в Google показывают, что это обычно вызывается предложением ORDER BY, но, очевидно, у меня его нет. = Р

Ответы [ 3 ]

4 голосов
/ 05 июля 2010

Вы определяете предложение WHERE, только если вы заполняете оператор INSERT оператором SELECT IE:

INSERT INTO mydb.inventory 
  (itemID)
SELECT :itemID FROM DUAL

В противном случае вы указываете значения как есть:

INSERT INTO mydb.inventory 
  (itemID)
VALUES
  (:itemID)

Вы задаете предложение WHERE при обновлении существующей записи :

UPDATE mydb.inventory 
   SET itemid = :itemid
 WHERE playerid = :ID
1 голос
/ 05 июля 2010
Предложение

A where довольно необычно в выражении insert.Возможно, вы пытаетесь обновить вместо этого?

UPDATE mydb.inventory SET itemID = :itemID WHERE playerID = :ID;
1 голос
/ 05 июля 2010

Вставка не может содержать предложение where.Возможно, вы действительно имели в виду update?

...