Two-table SQL update in Oracle

I have sql like this

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

But I get an error like this

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:

Where ERROR?

+5
source share
3 answers

Maybe something like

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)
+11
source

In Oracle, the syntax for updating a view is different from the syntax of SQL * Server. In Oracle, you can specify the following query:

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

Note. This query will only work in Oracle if it (S_TEKLIF.BAYI_KOD, S_TEKLIF.HESAP_NO)is unique (so the update will not be ambiguous, and each row of it S_MUSTERIwill be updated no more than once).

+3
source

. .

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

. : http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10007.htm#i2067715

+2
source

All Articles