首页 新闻 搜索 专区 学院

ORACLE 存储过程预防锁死

0
悬赏园豆:200 [待解决问题]

如题,数据库里面每天有个job执行一个过程,有时不小心修改存储过程,导致过程锁死。

想问下有没有什么方法可以预防解决该问题。

如锁定到一定时间后或者次数后回滚,还是释放资源什么的,让过程可以不被锁,不知道有没有什么办法。

例如下面的过程,是不是可以加些简单的处理语句来实现。

 

create or replace procedure DAY_REPORT_AREA(p_in_day varchar2) is
  v_sql         varchar2(4000);
  vs_errmsg     varchar2(500);
  v_in_yyyymmdd varchar2(8);

begin
  IF trim(p_in_day) IS NULL THEN
    v_in_yyyymmdd := to_char(sysdate - 1, 'yyyymmdd');
  ELSE
    v_in_yyyymmdd := p_in_day;
  END IF;
  v_in_yyyymm := substr(v_in_yyyymmdd, 1, 6);
---------------新入网放号------------------ v_data_type := 'AREA_NEW_USER_1001'; delete from xiem_report_toexcel where datatime = v_in_yyyymmdd and datatype = v_data_type; commit; v_sql := 'INSERT INTO XIEM_REPORT_TOEXCEL(DATATIME,DATAEXP,DATAVALUE,DATATYPE,DATAEXPLAIN) select ' || v_in_yyyymmdd || ',B.org_id,count(*),''' || v_data_type || ''',''新入网放号'' From xiem_mid_new_user_month_' || v_in_yyyymm || ' a, XIEM_ORG_ID B WHERE A.USER_SITE = B.ORG_ID and a.no_t_score is null and a.innet_date<=TO_NUMBER(' || v_in_yyyymmdd || ') group by B.org_id'; execute immediate v_sql; commit; end DAY_REPORT_AREA;
massinger的主页 massinger | 小虾三级 | 园豆:706
提问于:2012-06-21 13:05
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册