【发布时间】:2015-03-05 23:46:07
【问题描述】:
我有一个动态生成物化视图刷新的循环。但是,我知道随着时间的推移,链接可能会过时,甚至物化视图也可能会被删除。
我想捕获此循环中的任何错误,以便在出现错误时继续执行。
for dbname in ( select distinct db_nm from app_own ) loop
dbms_mview.refresh('MV_' || dbname.db_nm || '_ReTable', method => 'C', atomic_refresh=> true);
end loop;
下面是我通常用来捕获错误的内容...我已将它放在下面的循环中,但是我收到一个错误,告诉我异常行不是预期的。将这段代码直接放在结束循环之后会导致捕获一个错误,但不是全部。如何利用这个循环和下面的异常部分来捕获并继续整个循环?
EXCEPTION
WHEN OTHERS THEN
l_errcode := SQLCODE;
l_errmessage := SUBSTR(SQLERRM,1,50);
INSERT INTO log_table (program, code, message, info)
VALUES (l_this_prog, l_errcode, l_errmessage, 'procedure had an error while running ');
【问题讨论】: