Oracle 游标中的异常处理

Oracle 游标中的异常处理,oracle,exception,exception-handling,cursor,Oracle,Exception,Exception Handling,Cursor,这个问题不是重复的。我正在使用oracle 10g 我搜索了很多,但我的问题似乎不同 我有下列光标 DECLARE -- Some declarations -- CURSOR C1 IS -- some select statements Begin for r in c1 loop -- Insert queries DBMS_OUTPUT.PUT_LINE('INSERTED records'); End loop;

这个问题不是重复的。我正在使用oracle 10g

我搜索了很多,但我的问题似乎不同

我有下列光标

DECLARE  
   -- Some declarations
   --
CURSOR C1 IS
   -- some select statements
Begin
    for r in c1 loop

        -- Insert queries
         DBMS_OUTPUT.PUT_LINE('INSERTED records');
    End loop;

EXCEPTION WHEN others THEN
           dbms_output.put_line('error' || SQLERRM);
END;
根据上面的游标,每当插入过程中发生错误时,错误就会打印在输出上并停止执行。 然而,它应该继续循环


我尝试在循环中添加异常块,但仍然不起作用

然后您必须在反循环中使用另一个begin-exception-end。 像这样的

DECLARE  
   -- Some declarations
   --
CURSOR C1 IS
   -- some select statements
Begin
    for r in c1 loop

        BEGIN

            -- Insert queries
            DBMS_OUTPUT.PUT_LINE('INSERTED records');
        EXCEPTION
            WHEN OTHERS 
            THEN
               dbms_output.put_line('error in LOOP' || SQLERRM);
        END;
    End loop;

EXCEPTION WHEN others THEN
       dbms_output.put_line('error' || SQLERRM);
END;

请向我们展示您尝试将异常处理放入循环中的其他版本。这应该奏效。