如何在ORACLE中执行代码块时忽略错误
我试图在oracle中运行一个代码块,如果它抛出一些错误,它就会退出该代码块。我如何克服它?我尝试添加一些异常,但没有成功。下面是代码及其错误如何在ORACLE中执行代码块时忽略错误,oracle,exception,plsql,oracle11g,Oracle,Exception,Plsql,Oracle11g,我试图在oracle中运行一个代码块,如果它抛出一些错误,它就会退出该代码块。我如何克服它?我尝试添加一些异常,但没有成功。下面是代码及其错误 > begin for i in ( > select constraint_name , table_name > from user_constraints > where constraint_type ='C' > and status = 'ENABLED' ) LOOP db
> begin for i in (
> select constraint_name , table_name
> from user_constraints
> where constraint_type ='C'
> and status = 'ENABLED' ) LOOP dbms_utility.exec_ddl_statement('alter table "'|| i.table_name || '"
> disable constraint ' || i.constraint_name); end loop; end; /
它抛出以下错误,该错误应被忽略,块应继续执行
begin
*
ERROR at line 1:
ORA-30671: cannot modify NOT NULL constraint on an identity column
ORA-06512: at "SYS.DBMS_UTILITY", line 574
ORA-06512: at line 9
我尝试添加了一些不太好用的异常 这里应该使用嵌套的开始-结束块,异常处理在内部块中
begin for i in (
select constraint_name , table_name
from user_constraints
where constraint_type ='C'
and status = 'ENABLED' )
LOOP
BEGIN
dbms_utility.exec_ddl_statement('alter table "'|| i.table_name || '"disable constraint ' || i.constraint_name);
EXCEPTION
WHEN OTHERS THEN
/* Your exception handing here. */
NULL;
END;
end loop;
end;
/
你们还面临这个问题吗?嗨,马赫什,对不起,现在清楚了。谢谢。:)