oracle作业执行失败提示ORA-12011的解决思路

文章描述了一位技术人员在处理Oracle数据库12c中遇到的ORA-12011错误,该错误发生在作业执行时。通过检查alert日志,发现错误源是存储过程中的某行导致的数据未找到异常。在尝试授权、比较权限等排查步骤后,最终通过分析日志定位到具体问题并解决了数据缺失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说结论:请好好的阅读oracle的alert日志文件,里面的错误提示是很清楚的,精确到行;在plsql里运行作业出错的提示是简略的,容易给人浮躁的心态;如果在ssh工具显示中文为乱码,请设置好工具的字符集问题。

数据库: 12c 发布 1
错误代码: ORA-12011
描述: 无法执行 %s 作业
原因: dbms_ijob.run中从一个或多个应运行的作业中捕获了一个错误。
动作: 查看警报日志以了解有关哪些作业失败以及原因的详细信息。

数据库: 12c 发布 1
错误代码: ORA-12011
描述: execution of string jobs failed
原因: An error was caught in dbms_ijob.run from one or more jobs which were due to be run.
动作: Look at the alert log for details on which jobs failed and why.

事件过程:

现象:有个作业自动broken,重建过一分钟后也一样broken。

排查:1,手工执行里面的存储过程,没有报错。2,手工运行作业提示ORA-12011(plsql里面提示真是简略,显示不了的用三个点代替);3,搜索ORA-12011没找到对的方案,以为是没授权执行作业的权限,给用户授权,结果一样报ORA-12011错误;4,对比相同类型的用户的dba_tab_privs表权限、dba_sys_privs系统权限、dba_role_privs角色权限,发现设置都一样。

最终手段:ssh到服务器上看alert日志,看到最新的日志内容,提示是存储过程第n行出错,还有ORA-01403: 未找到数据。通过对第n行进行业务排查,确实是没有数据。后面就是解决没数据的事情略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值