いくつかの行を挿入する際にエラーが発生するのを避けるためにこの例外を置いていますが、なぜ実行できるのかわかりません。forall plsqlにエラーをキャッチする方法
DECLARE
TYPE dataDate IS TABLE OF DATE;
l_dataDate dataDate;
BEGIN
select data1 BULK COLLECT INTO l_dataDate from USER.TABLE_DATA;
FORALL i IN l_dataDate.FIRST..l_dataDate.LAST
BEGIN
INSERT INTO USER.DIMDATE SELECT
to_number(to_char(l_dataDate(i), 'YYYYMMDDHH24MISS')),
to_number(to_char(l_dataDate(i), 'YYYYMMDD')),
l_dataDate(i),
to_number(to_char(l_dataDate(i), 'DD')),
to_char (l_dataDate(i), 'Day'),
to_number(to_char (l_dataDate(i), 'MM')),
to_char (l_dataDate(i), 'Month'),
to_number(to_char(l_dataDate(i), 'YYYY')) FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM USER.DIMDATE WHERE COD_FECHA=to_number(to_char(l_dataDate(i), 'YYYYMMDDHH24MISS')));
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('ERROR '||SUBSTR(SQLERRM, 1, 200));
END;
END;
/
このようなことは可能でしょうか?前もって感謝します。
「一括収集...保存例外」を実行するとします。 https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1422998100346727312 –