1

下面的简单语句:

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

生成以下错误:

ORA-00933: SQL command not properly ended

我试过不带分号和带分号,但都给了我错误。我确信变量也被绑定了。

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

4

3 回答 3

4

如果您使用 SELECT填充INSERT 语句,则仅定义 WHERE 子句。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
于 2010-07-05T18:05:05.837 回答
1

插入不能有 where 子句。也许你真的打算update

于 2010-07-05T18:04:05.087 回答
1

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

UPDATE mydb.inventory SET itemID = :itemID WHERE playerID = :ID;
于 2010-07-05T18:05:07.463 回答