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

Cập nhật câu lệnh với tham gia bên trong trên Oracle

Cú pháp đó không hợp lệ trong Oracle. Bạn có thể làm điều này:

UPDATE table1 SET table1.value = (SELECT table2.CODE
                                  FROM table2 
                                  WHERE table1.value = table2.DESC)
WHERE table1.UPDATETYPE='blah'
AND EXISTS (SELECT table2.CODE
            FROM table2 
            WHERE table1.value = table2.DESC);

Hoặc bạn có thể có thể làm điều này:

UPDATE 
(SELECT table1.value as OLD, table2.CODE as NEW
 FROM table1
 INNER JOIN table2
 ON table1.value = table2.DESC
 WHERE table1.UPDATETYPE='blah'
) t
SET t.OLD = t.NEW

Nó phụ thuộc vào việc xem chế độ xem nội tuyến có được Oracle coi là có thể cập nhật được hay không ( Có thể cập nhật cho câu lệnh thứ hai phụ thuộc vào một số quy tắc được liệt kê ở đây ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hiển thị nhận xét của một cột bằng thao tác mô tả

  2. Có thể chạy tập lệnh SQLPLUS trên tệp được mã hóa là UTF-8 với BOM không

  3. 30 truy vấn quản lý đồng thời hữu ích nhất

  4. Oracle RAC trên đám mây của bên thứ ba

  5. Java:Đọc Blob từ Oracle