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

Cập nhật bảng từ một bảng khác trong oracle

Trong trường hợp này, bạn nên sử dụng câu lệnh MERGE như sau:

DECLARE
  l_date DATE:=TO_DATE('01/04/2017','DD/MM/YYYY');
BEGIN
  LOOP
    EXECUTE IMMEDIATE 'MERGE INTO EMPSHIFT E
USING SCHEDULEEMPLOYEES S
ON (S.EMPLOYEEID=E.EMPLOYEEID AND S.DAYDATE=TO_DATE('''||TO_CHAR(l_date)||''',''DD/MM/YYYY''))
WHEN MATCHED 
THEN UPDATE SET E."'||TO_CHAR(l_date)||'"=S.SHIFT';
    l_date:=l_date+1;
    EXIT
  WHEN l_date>TO_DATE('30/04/2017','DD/MM/YYYY');
  END LOOP;
END;

Bạn đã đề cập rằng bạn muốn cập nhật bản ghi, nhưng nếu bạn muốn chèn các bản ghi bị thiếu (đối với EMPLOYEEID bị thiếu trong bảng EMPSHIFT), vui lòng tham khảo merge_insert_clause



  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àm cách nào để truy cập Oracle từ Python?

  2. Tạo Oracle Trigger với lỗi biên dịch, ORA-02289:không tồn tại trình tự

  3. Cách chèn UUID vào cột RAW (16)

  4. Làm thế nào để liên kết một người dùng với nhiều lược đồ của một cơ sở dữ liệu?

  5. cách gọi hàm được lưu trữ của tham số IN và OUT trong Cơ sở dữ liệu Oracle bằng Java