执行oracle中的job报错:ORA-12011:无法执行作业1

不言
發布: 2018-05-18 14:24:44
原創
3687 人瀏覽過

LZ在做一个job执行每天新增一个表的操作时,存储过程运行没问题,job也创建成功,但运行job时,却报错: ,后又用sys用户登陆创建了同样的存储过程和job,结果可以执行成功。当时就猜测是权限问题。后在网上搜索发现,这是因为存储过程中执行的是DDL命令,

LZ在做一个job执行每天新增一个表的操作时,存储过程运行没问题,job也创建成功,但运行job时,却报错:

执行oracle中的job报错:ORA-12011:无法执行作业1

,后又用sys用户登陆创建了同样的存储过程和job,结果可以执行成功。当时就猜测是权限问题。后在网上搜索发现,这是因为存储过程中执行的是DDL命令,

当前用户没有执行DDL的权限,引用另一篇文章中的内容如下:

总结,角色resource里也包括了create table的权限,但是执行过程(该过程为一个创建表的过程)报错,而我们直接给用户hat授予create table权限,执行该过程则成功执行,
此处说明用户的角色权限是不可以继承到存储过程里面的,只有对用户授予直接的系统权限,存储过程才可继承。
登入後複製

最终,执行了赋权限给了当前用户,这样就可以正常执行了这个job了。

总结,存储过程和job在执行DDL命令时,都需要其所有者拥有执行 DDL命令的权限。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!