oracle表中数据死循环,oracle XE ,procedure死循环招致100%CPU解决

oracle XE ,procedure死循环导致100%CPU解决

写了个procedure,在cursor里用loop的时候忘记写exit when了,结果用job去调度执行起来后,oracle的进程就占掉100%CPU了,shutdown了后重新startp,马上又是100%了。想用toad等工具去连都基本没反应了。没办法,只能sqlplus了,用sys用户登进去,select * from dba_jobs where broken='N';可以看到自己创建的job号21,说明这个任务没有broken,还会执行。先把它broken掉: exec dbms_job.broken(21,true); 报错:

*

第 1 行出现错误:

ORA-23421: 作业编号22在作业队列中不是一个作业

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 86

ORA-06512: 在 "SYS.DBMS_IJOB", line 529

ORA-06512: 在 "SYS.DBMS_JOB", line 245

ORA-06512: 在 line 1

怪了,明明可以看到这个任务,为什么又说不是一个作业呢?

换创建任务的用户登录,执行select * from user_jobs where broken='N';仍然可以看到job21,再执行exec dbms_job.broken(21,true); 嘿嘿 ,提示“PL/SQL 过程已成功完成”。然后可以把job删掉了,exec dbms_job.remove(22); 但是发觉CPU还是100%,重启之后,正常了。哈哈~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值