Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

lỗi cú pháp với truy vấn cập nhật khi tham gia với một số bảng

Oracle không hỗ trợ join trong update cú pháp:

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

Đây là SQL tiêu chuẩn và sẽ hoạt động trong bất kỳ cơ sở dữ liệu nào.

Truy vấn của bạn cũng có các vấn đề khác. . . truy vấn con không nằm trong dấu ngoặc đơn, inner join không có bảng đầu tiên.

CHỈNH SỬA:

Bạn có thể viết truy vấn này với truy vấn con đó:

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 );

Tôi đã chuyển cái này thành IN , chỉ vì đó là một lựa chọn khác. Bạn vẫn có thể sử dụng 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. Lỗi Oracle .Net ManagedDataAccess:Không thể tải loại 'OracleInternal.Common.ConfigBaseClass' từ lắp ráp

  2. Bộ điều hợp mạng không thể thiết lập kết nối khi kết nối với Oracle DB

  3. Xác định vị trí của tệp tnsnames.ora có liên quan

  4. Cách bật tiện ích mở rộng cho oci8 (Oracle) trong php.ini - Cảnh báo PHP:Khởi động PHP:ở dòng 0

  5. Tên cột bảng Oracle có khoảng trắng