在Oracle中使用两个表更新SQL

在Oracle中使用两个表更新SQL,sql,oracle,sql-update,ora-00933,Sql,Oracle,Sql Update,Ora 00933,我有一个这样的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

我有一个这样的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:
但是我遇到了这样的错误

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:

错误在哪里?

您的update语句没有遵循正确的语法。update语句中没有from子句。它应该遵循这种格式

Update <table> 
   set <column> = <value> 
 where <conditions>
更新
集合=
哪里
请参阅有关更新的文档:

可能类似于

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)

在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)
是唯一的(这样更新就不会模棱两可,并且
S_MUSTERI
中的每一行最多更新一次)。

多表
update
在SQL Server上工作,但在Oracle上不工作。您是在过程中这样做的吗?,没有来自