在plsql语句中,如何能在循环执行过程中,出现异常时不抛出异常,而是跳过该错误,使循环能继续下去?紧急!请大家帮助。
下面两种方法我都试过,都不可以。
方法一:
declare
i varchar2(10) := '11111';
vi int;
begin
<>
for vi in 1..3 loop
i := i||'1';
insert into C(CID,NID)
VALUES (i,vi) ;
end loop;
exception
when others then
vi := vi - 1;
DBMS_OUTPUT.PUT_LINE(i);
goto pp;
end;
ORA-06550: line 15, column 5:
PLS-00375: illegal GOTO statement; this GOTO cannot branch to label 'PP'
ORA-06550: line 15, column 5:
PL/SQL: Statement ignored
方法二:
declare
i varchar2(10) := '11111';
vi int;
begin
loop
for vi in 1..3 loop
i := i||'1';
insert into C(CID,NID)
VALUES (i,vi) ;
continue;
end loop;
exception
when others then
vi := vi - 1;
DBMS_OUTPUT.PUT_LINE(i);
exit when vi>3;
end loop;
end;
ORA-06550: line 12, column 4:
PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following:
begin declare end exit for goto if loop mod null pragma raise
return select update while
<<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall
ORA-06550: line 18, column 1:
PLS-00103: Encountered the symbol "END" when expecting one of