sql >> Databáze >  >> RDS >> Oracle

Aktualizujte tabulku z jiné tabulky v oracle

V tomto případě byste měli použít příkaz MERGE, jak je uvedeno níže:

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;

Zmínili jste, že chcete aktualizovat záznamy, ale pokud byste chtěli vložit chybějící záznamy (pro chybějící EMPLOYEEID v tabulce EMPSHIFT), podívejte se na merge_insert_clause



  1. Získejte sloupec primárního klíče tabulky v oracle

  2. Implementace jediného přihlášení pro tři webové stránky v PHP?

  3. Jak vrátím jeden prvek z string_to_array() v PostgreSQL 8.4?

  4. mysql - AKTUALIZACE řádku na základě jiných řádků