1

我正在尝试在 Oracle 中创建一个索引,我的 ddl :

create index OMD_DOCTEXT2_CTX on table_name(col_name)
indextype is ctxsys.context local
parameters ('datastore CTXSYS.FILE_DATASTORE filter ctxsys.null_filter  lexer E2LEX wordlist E2WORDLIST stoplist E2STOP section group E2GROUP') parallel 4;

我收到错误:

ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-10758: index owner does not have the privilege to use file or URL datastore
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366

有任何想法吗?

4

1 回答 1

1

来自Oracle 文本文档:

文件和 URL 数据存储允许访问实际数据库磁盘上的文件。当存在安全问题时,这可能是不可取的,因为任何用户都可以浏览 Oracle 用户可以访问的文件系统。FILE_ACCESS_ROLE 系统参数可用于设置授权使用 FILE 或 URL 数据存储创建索引的数据库角色的名称。如果设置,任何尝试使用 FILE 或 URL 数据存储创建索引的用户都必须具有此角色,否则索引创建将失败。

例如,以下语句设置数据库角色的名称:

ctx_adm.set_parameter('FILE_ACCESS_ROLE','TOPCAT');

其中 TOPCAT 是有权在文件或 URL 数据存储上创建索引的角色。当没有授权角色的用户尝试在文件或 URL 数据存储上创建索引时,CREATE INDEX 操作将失败。

那么,您的用户是否具有必要的角色?

于 2010-02-24T22:19:44.137 回答