更新全文索引出现编译错误!

superwing 2008-01-17 11:01:40
大家好!不知道有没有人遇到这样的问题:
建立好全文索引后,我想自己写个存储过程加入到job中,可是建立全文索引后,再建立存储过程老是报编译错误
存储过程如下:

CREATE OR REPLACE PROCEDURE updateindex as
BEGIN
ctx_ddl.sync_index('fileindex');
END ;

使用 show error命令后:如下提示:
PLS-00201: 必须说明标识符 'CTX_DDL'
PL/SQL: Statement ignored

但直接执行 exec ctx_ddl.sync_index('fileindex'); 在pl/sql中是可以执行的!

有谁遇到个如此问题没?请多多指教!
...全文
274 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pds9902 2008-04-24
  • 打赏
  • 举报
回复
要想使用CTX_DDL 必须为使用者开通CTXSYS.CTX_DDL权限
在oracle9i中可能必须用ctxsys用户登录,为用户开通权限。其他用户不可以。
ctxsys可能是禁用的,需要用system登录将其启用并设置密码(alter user

ctxsys identified by cobuyor_ctxsys)。
用ctxsys用户登录后执行 grant execute on ctx_ddl to <user>即可开通权限
superwing 2008-02-17
  • 打赏
  • 举报
回复
顶!
superwing 2008-02-17
  • 打赏
  • 举报
回复
楼上的:还是不行!我在sql/plus worksheet里面创建:
CREATE OR REPLACE PROCEDURE "DOCUSER"."UPDATEINDEX"
as
BEGIN
execute immediate ctx_ddl.sync_index('fileindex');
end ;

还是提示 :创建的过程带有编译错误
gxlineji 2008-01-21
  • 打赏
  • 举报
回复
试试
CREATE OR REPLACE PROCEDURE updateindex as
BEGIN
execute immediate ctx_ddl.sync_index('fileindex');
END ;
gxlineji 2008-01-21
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE updateindex as
BEGIN
exec ctx_ddl.sync_index('fileindex');
END ;
superwing 2008-01-20
  • 打赏
  • 举报
回复
顶!
caral525 2008-01-18
  • 打赏
  • 举报
回复
在存储过程中执行它时,必须明确地为该用户授权。
你可以用SYS或者SYSTEM登录,然后给它execute权
superwing 2008-01-18
  • 打赏
  • 举报
回复
楼上的,我已经将登陆用户设置为DBA了,还需要设置其他权限么?
但是我能够使用exec ctx_ddl.sync_index('fileindex');执行成功,应该是有权限的啊!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧