5

私はこのようなSQLを持っています

UPDATE A
SET A.TEMSILCI_KOD = 4
FROM S_MUSTERI A, S_TEKLIF B
WHERE A.TEMSILCI_KOD = 9
AND B.BAYI_KOD = 17
AND A.HESAP_NO = B.HESAP_NO

しかし、私はこのようなエラーが発生します

Error starting at line 8 in command:
UPDATE A
SET A.TEMSILCI_KOD = 4
FROM S_MUSTERI A, S_TEKLIF B
WHERE A.TEMSILCI_KOD = 9
AND B.BAYI_KOD = 17
AND A.HESAP_NO = B.HESAP_NO
Error at Command Line:9 Column:22
Error report:
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:

はどこERRORですか?

4

3 に答える 3

11

多分何かのような

UPDATE S_MUSTERI
SET TEMSILCI_KOD = 4
WHERE TEMSILCI_KOD = 9
AND EXISTS (SELECT 1 FROM S_TEKLIF B
WHERE S_MUSTERI.HESAP_NO = B.HESAP_NO
AND B.BAYI_KOD = 17)
于 2011-02-08T15:10:17.097 に答える
4

Oracle では、ビューを更新するための構文は SQL*Server の構文とは異なります。Oracle では、次のクエリを発行できます。

UPDATE (SELECT A.TEMSILCI_KOD
          FROM S_MUSTERI A, S_TEKLIF B
         WHERE A.TEMSILCI_KOD = 9
           AND B.BAYI_KOD = 17
           AND A.HESAP_NO = B.HESAP_NO)
   SET TEMSILCI_KOD = 4

注: このクエリは、(S_TEKLIF.BAYI_KOD, S_TEKLIF.HESAP_NO)一意の場合にのみ Oracle で機能します (更新があいまいにならず、各行がS_MUSTERI最大 1 回更新されるようにするため)。

于 2011-02-08T15:33:43.343 に答える
2

update ステートメントが正しい構文に従っていません。update ステートメントに from 句はありません。フォーマットに従う必要があります

Update <table> 
   set <column> = <value> 
 where <conditions>

更新に関するこのドキュメントを参照してください: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10007.htm#i2067715

于 2011-02-08T15:06:48.803 に答える