大家好!不知道有没有人遇到这样的问题:
建立好全文索引后,我想自己写个存储过程加入到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中是可以执行的!有谁遇到个如此问题没?请多多指教!
建立好全文索引后,我想自己写个存储过程加入到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中是可以执行的!有谁遇到个如此问题没?请多多指教!
你可以用SYS或者SYSTEM登录,然后给它execute权
但是我能够使用exec ctx_ddl.sync_index('fileindex');执行成功,应该是有权限的啊!
BEGIN
exec ctx_ddl.sync_index('fileindex');
END ;
CREATE OR REPLACE PROCEDURE updateindex as
BEGIN
execute immediate ctx_ddl.sync_index('fileindex');
END ;
CREATE OR REPLACE PROCEDURE "DOCUSER"."UPDATEINDEX"
as
BEGIN
execute immediate ctx_ddl.sync_index('fileindex');
end ;还是提示 :创建的过程带有编译错误
在oracle9i中可能必须用ctxsys用户登录,为用户开通权限。其他用户不可以。
ctxsys可能是禁用的,需要用system登录将其启用并设置密码(alter user ctxsys identified by cobuyor_ctxsys)。
用ctxsys用户登录后执行 grant execute on ctx_ddl to <user>即可开通权限