ORA-00933:SQL命令未正确结束(在简单的插入语句中)

时间:2010-07-05 17:56:01

标签: sql oracle plsql ora-00933

以下简单陈述:

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

生成以下错误:

ORA-00933: SQL command not properly ended

我没有使用分号也没试过,但两个都给了我错误。我确信变量也受到约束。

我的所有Google搜索都显示这通常是由ORDER BY子句引起的,但显然我没有。 = P

3 个答案:

答案 0 :(得分:4)

如果使用SELECT填充INSERT statement,则只定义WHERE子句。 IE:

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

否则,您可以按原样指定值:

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

您在updating an existing record时指定WHERE子句:

UPDATE mydb.inventory 
   SET itemid = :itemid
 WHERE playerid = :ID

答案 1 :(得分:1)

insert不能有where子句。也许你的意思是update

答案 2 :(得分:1)

where语句中,insert子句非常不寻常。也许您正在尝试更新?

UPDATE mydb.inventory SET itemID = :itemID WHERE playerID = :ID;