Witam,
Próbuję napisać kod który zadziała zgodnie z poniższymi założeniami.
Mamy 2 tabele źródłową (TAB_SRC) i tabelę docelową (TAB_DST)
- Chciałbym wykonać update wszystkich rekordów (jeśli istnieją) w tabeli docelowej - rekordami z tabeli źródłowej.
- Jeśli w tabeli docelowej nie ma rekordu z tabeli źrodłowej - to chciałbym wykonać insert.
- Mógłbym zastosować merge natomiast zdecydowałem sie na kursor z tego względu ze obie tabele mają bardzo dużą liczbę kolumn.
Nie chcę wypisywać kilkudziesięciu kolumn w insertach i updatach.
Wykombinowałem coś takiego jak poniżej ale niestety nie działa - jakieś podpowiedzi?
Dzięki :)
BEGIN
FOR REC1 IN (SELECT * FROM TAB_SRC)
LOOP
UPDATE TAB_DST SET ROW = REK1 WHERE TAB_DST.ID=REK1.ID;
BEGIN
EXCEPTION WHEN OTHER THEN
INSERT INTO TAB_DST VALUES (REC1);
GOTO P1;
END;
<<P1>>;
NULL;
END LOOP;
END;