0

以下のブロックを見つけてください。

for i in 1..acd.count loop

insert into customer_account_mapping select customerid,upper(pcd(i)),upper(acd(i)),cost from customer_master where customername=customer_name and concat(upper(pcd(i)),upper(acd(i))) not in (select concat(upper(pcode),upper(acode)) from customer_account_mapping);

insert into user_permissions select distinct user_id,sales_person_name,sales_mgr_name,upper(pcd(i)),upper(acd(i)) from user_permissions where sales_person_name=sales_person and concat(upper(pcd(i)),upper(acd(i))) not in (select concat(upper(pcode),upper(acode)) from user_permissions) and rownum<2 ;
commit;
end loop;

最初の挿入ステートメントでエラーが発生した場合、それを処理して 2 番目の挿入ステートメントを実行する方法。

4

2 に答える 2

0
EXCEPTION  -- exception handlers begin



 WHEN exception type  -- handles 'division by zero' error
           ...

 WHEN OTHERS THEN  -- handles all other errors
      ROLLBACK;

END;

このコード ブロックを最初の挿入ステートメントの後に配置します。

于 2013-06-28T07:47:24.253 に答える