2010-07-05 46 views
1

下面簡單的語句:ORA-00933:SQL命令不能正確地結束(在簡單的插入語句)

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

生成以下錯誤:

ORA-00933: SQL command not properly ended 

我已經嘗試過了沒有半冒號以及與,但都給我錯誤。我確信變量也受到約束。

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

+0

n/m。我剛剛意識到我想要做的事情是愚蠢的。 – rageingnonsense 2010-07-05 18:06:40

回答

1

插入不能有where子句。也許你的意思是update

+1

如果使用SELECT來填充值,則插入可以具有WHERE子句。詳情請參閱我的回答。 – 2010-07-05 18:24:21

+1

@OMG - 精神上(對我來說)子選擇中的「where」。但是,是的。 – Donnie 2010-07-06 12:12:18

4

如果您使用SELECT填充INSERT statement,則只定義WHERE子句。 IE:

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

否則,您指定的值,是:

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

您指定WHERE子句,當你updating an existing record

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

一個where條款是相當不尋常一個insert聲明。也許你正在嘗試更新?

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

「不尋常」是一種有點低估的簡單句法錯誤的描述。 – 2010-07-06 00:18:14

相關問題