首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle标识符'ctx_ddl‘必须声明-添加一个dbms_job

问oracle标识符'ctx_ddl‘必须声明-添加一个dbms_job
EN

Stack Overflow用户
提问于 2011-03-28 07:06:45
回答 1查看 15.7K关注 0票数 1

我使用以下命令向表中添加了一个索引:

CREATE INDEX patient_index ON radiology_record(patient_name) INDEXTYPE IS CTXSYS.CONTEXT;

我正在尝试添加一个DBMS_JOB,以保持它的最新。

运行此脚本的方式是从SQLPLUS调用"@myscript.sql“

代码语言:javascript
复制
set serveroutput on 
declare
   job number; 
begin
   dbms_job.submit(job, 'ctx_ddl.sync_index(''patient_index'');',
                  interval=>'SYSDATE+1/1440');   
   commit;
   dbms_output.put_line('job '||job||'has been submitted.'); 
 end;
 /

由此产生的错误是PLS-00201: identifier 'CTX_DDL' must be declared

通过我的搜索,我找到了一个有类似问题的人,他的解决方案是

我花了足够的时间调试它,所以我认为它值得分享我学到的东西。结果表明,dbms_jobs只继承模式用户的默认权限,而不是从授予该用户的角色继承的任何特权。这意味着作业不会使用本应授予架构用户的ctxsys权限运行。那这是什么意思?这意味着您必须以ctxsys用户的身份运行作业。

不幸的是,我不能使用它来授予自己特权,因为是的,这是家庭作业,而且我没有在ctx_ddl上将执行权限授予自己。

有人知道我如何解决这个问题吗?否则,我将等到本周晚些时候再征询电讯局长的意见。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-28 08:03:58

我认为没有解决办法,因为DBMS_JOB显式地指定了这个限制:

您可以执行用户拥有的过程或显式授予用户执行的过程。但是,不能执行通过角色授予用户执行权限的过程。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5455675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档