Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

kesalahan sintaks dengan permintaan pembaruan saat bergabung dengan beberapa tabel

Oracle tidak mendukung join di update sintaks:

UPDATE T123
    SET COL1 = 1,
        VER1 = VER1 + 1
    WHERE EXISTS (SELECT 1 FROM WAPTDT_123 T WHERE T123.REQUEST_ID = T.NUM_FLD);

Ini adalah SQL standar dan harus berfungsi di basis data apa pun.

Permintaan Anda memiliki masalah lain juga. . . subquery tidak dalam tanda kurung, inner join tidak memiliki tabel pertama.

EDIT:

Anda dapat menulis kueri ini dengan subkueri itu:

UPDATE T123
    SET COL1 = 1,
        VER1 = VER1 + 1
    WHERE T123.REQUEST_ID IN (SELECT C1 FROM ( SELECT T.NUM_FLD C1 FROM WAPTDT_123 T) TAB );

Saya mengalihkan ini ke IN , hanya karena itu adalah pilihan lain. Anda masih dapat menggunakan EXISTS .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TNSPING OK tapi sqlplus memberikan ORA-12154?

  2. Kesalahan Oracle ORA-12154 pada IIS lokal, tetapi tidak dengan Server Pengembangan Visual Studio

  3. Kembalikan Nama Hari Pendek dari Tanggal di Oracle

  4. NOT IN seleksi dengan nilai NULL

  5. Temukan tahun berturut-turut maksimum untuk setiap ID dalam tabel (Oracle SQL)