2017-04-24 3 views
0

Ich habe kürzlich über Ausnahmen erfahren und ich habe versucht, einige Ausnahmen zu ignorieren. Grundsätzlich möchte ich eine bestimmte Anzahl von Zeilen in eine neue Tabelle einfügen, und ich mache es mit einer Weile. Manchmal kann eine doppelte ID eingefügt werden, und so bekomme ich den Fehler DUP_VAL_ON_INDEX. Ich werfe es, aber ich möchte, dass der Code weitergeht. Ich habe es mit NULL versucht, aber es funktioniert leider nicht. Ich benutze SQL-Entwickler. Der Code ist in etwa so:Pl Sql Ausnahmebehandlung

while nr <= nr_rows 
loop 
insert_into_table_code; 
end loop; 

exception 
    when DUP_VAL_ON_INDEX then 
    nr:=nr-1; 
    NULL; 

Dies funktioniert nicht ... obwohl es die Ausführung des Codes noch stoppt. Irgendwelche anderen Möglichkeiten, wie ich weitermachen könnte?

Antwort

1

Behandeln Sie die Ausnahme innerhalb der Schleife und nicht außerhalb der Schleife. Pseudocode:

while nr <= nr_rows 
loop 
    begin 
     insert_into_table_code; 
    exception 
     when DUP_VAL_ON_INDEX then 
      nr:=nr-1; 
    end; 
end loop; 
+0

Danke! Es funktioniert perfekt. – Gimv13