Insert/Update in PL/SQL

Ich habe eine Prozedur in PL/SQL, die fügt Daten aus einer Tabelle in eine andere, die auf Grundlage der primär-Schlüssel. Meine Vorgehensweise ist in Ordnung, aber ich kann nicht herausfinden, wie werde ich die update-Spalte CODE_NUMBER meiner Tabelle HAUPT, wenn primary key bereits existiert.
Eigentlich will ich die Zeilen der Haupttabelle AKTUALISIERT, wenn seine hat einen primären Schlüssel, und fügen Sie Daten von REGIONEN, wenn primary key nicht vorhanden ist.

DECLARE
    variable number;
    id number;
    description varchar2 (100);

    CURSOR C1 IS
        select regions.REGION_ID variable
        from regions;

BEGIN
      FOR R_C1 IN C1 LOOP
            BEGIN
                select regions.REGION_ID,regions.REGION_NAME
                into id,description
                from regions
                where regions.REGION_ID = R_C1.variable; 
                ----If exists then update otherwise insert
                INSERT INTO MAIN( ID, CODE_NUMBER) VALUES( id,description);
                dbms_output.put_line( id ||' '|| 'Already Exists');
            EXCEPTION
                WHEN DUP_VAL_ON_INDEX THEN
                dbms_output.put_line( R_C1.variable);
            END;
      END LOOP;
END; 

InformationsquelleAutor Femme Fatale | 2012-05-16

Schreibe einen Kommentar