2010-07-05 2 views
1

다음과 같은 간단한 문 :ORA-00933 : (간단한 삽입 문에서) 제대로 종료되지 SQL 명령

ORA-00933: SQL command not properly ended 

나는 반하지 않고 그것을 시도했다 :

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

다음과 같은 오류를 생성합니다 결장뿐만 아니라,하지만 둘 다 나에게 오류를 제공합니다. 나는 변수들이 바운드되고 있다는 것을 확신한다.

내 모든 Google 검색 결과는 대개 ORDER BY 절에 의해 발생하지만 분명히 가지고 있지 않음을 보여줍니다. = P

+0

n/m. 나는 단지 내가하려고했던 것에 어리 석음을 깨달았다. – rageingnonsense

답변

1

삽입은 where 절을 가질 수 없습니다. 아마 update 일까?

+1

SELECT를 사용하여 값을 채우는 경우 INSERT에 WHERE 절이있을 수 있습니다. 자세한 내용은 내 대답을 참조하십시오. –

+1

@OMG - 정신적으로 (나에게)'where'는 하위 선택입니다. 그러나 그렇습니다. – Donnie

4

INSERT statement에 SELECT를 채우는 경우에만 WHERE 절을 정의하십시오. IE는 :있는 그대로

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

그렇지 않으면 값을 지정

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

where 절은 오히려 이례적인 일이다 : 당신이 updating an existing record을 때

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

당신은 WHERE 절을 지정 insert 문 아마도 대신 업데이트하려고하십니까?

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

"이상한"은 단순히 구문 적으로 잘못된 것의 다소 과장된 설명입니다. –

관련 문제