sql >> Database >  >> RDS >> Oracle

Tabel bijwerken vanuit een andere tabel in oracle

In dit geval moet u de MERGE-instructie gebruiken zoals hieronder:

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;

Je hebt aangegeven dat je records wilt bijwerken, maar als je ontbrekende records wilt invoegen (voor ontbrekende EMPLOYEEID in EMPSHIFT-tabel), raadpleeg dan merge_insert_clause



  1. psql:FATAL:kon bestandsbasis/11951/11717 niet openen:alleen-lezen bestandssysteem

  2. Een tabel maken op basis van een query en rijen die zijn opgehaald uit de select-instructie

  3. jOOQ EXTRACT (EPOCH VAN [veld]) oplossing?

  4. Hoe nieuwe en laatst ingevoegde invoer met dezelfde ID optellen en resultaat in nieuwe invoer invoegen?