Oracle
 sql >> база данни >  >> RDS >> Oracle

Актуализирайте таблица от друга таблица в Oracle

В този случай трябва да използвате израза MERGE както по-долу:

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;

Споменахте, че искате да актуализирате записи, но ако искате да вмъкнете липсващи записи (за липсващ EMPLOYEEID в таблицата EMPSHIFT), моля, вижте 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. PLSQL генерира произволно цяло число

  2. Oracle Mutating Trigger

  3. Специфична ли е часовата зона java.sql.Timestamp?

  4. SQL командата не е приключила правилно?

  5. Oracle Trigger на вложена таблица