1

次の簡単なステートメント:

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

次のエラーが生成されます。

ORA-00933: SQL command not properly ended

セミコロンなしでもセミコロンなしでも試しましたが、どちらもエラーが発生します。変数もバインドされていると確信しています。

私のすべての Google 検索では、これは通常 ORDER BY 句が原因であることが示されていますが、明らかに私には ORDER BY 句がありません。=P

4

3 に答える 3

4

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
于 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 に答える