欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

oracle數據庫的全文檢索

錢浩然2年前17瀏覽0評論

oracle數據庫的全文檢索?

Oracle全文檢索配置方法:

1.檢查數據庫是否具有全文檢索功能(這是針對已經建成使用的數據庫)

查看用戶中是否存在ctxsys用戶,查詢角色里是否存在ctxapp角色。以上兩個中的1個不滿足(不存在),則說明沒有裝過全文檢索功能。

使用contains函數的時候,若沒有全文檢索則會報錯的。

2.若沒有,則需要手動建立,先建立全文檢索要使用的空間

sqlplus / as sysdba --進入控制臺

create tablespace Idx_ctxsys datafile '/oradata/sg186fx/ctxsys01.dbf size 10240M autoextend on next 32M maxsize 20480M;--創建全文檢索使用的表空間

3.創建全文檢索使用的用戶和角色及相應的包,則需要執行oracle自帶的一個腳本:cd $ORACLE_HOME/ctx/admin/catctx.sql

還是在sqlplus中執行:

@?/ctx/admin/catctx.sql ctxsys Idx_ctxsys temp nolock

在執行這個腳本的時候,輸入了幾個參數,第一個參數ctxsys為ctxsys用戶的密碼

第二個參數Idx_ctxsys為ctxsys用戶要使用的表空間

第三個參數temp為ctxsys用戶使用的臨時表空間

第四個參數nolock為ctxsys用戶處于解鎖狀態。

4.創建完成后,要登錄ctxsys用戶

connect ctxsys/ctxsys

執行以下腳本:@?/ctx/admin/defaults/drdefus.sql(這是個很重要的腳本,后面創建索引會使用該腳本創建的信息)

5.創建全文索引語法分析器

先要明確使用全文索引的用戶,我要使用全文索引的是sgpm用戶

因此

grant execute on ctxsys.ctx_ddl to sgpm with grant option;

connect sgpm/sgpm

設置語法分析器:

exec ctx_ddl.drop_preference('chinalexer');exec ctx_ddl.create_preference('chinalexer','chinese_lexer');

設置詞法屬性:

exec ctx_ddl.drop_preference('idx_c_store');

beginctx_ddl.create_preference('idx_c_store','BASIC_STORAGE');ctx_ddl.set_attribut('idx_c_store','I_TABLE_CLAUSE','tablespaces Idx_ctxsy');ctx_ddl.set_attribute('idx_c_store','I_INDEX_CLAUSE','tablespace Idx_ctxsy compress 2');end;/

6.創建索引

create index sgpm.idx_c_cons_name on sgpm.c_cons(cons_name) indextype is ctxsys.context parameters('lexer chinalexer storage idx_c_store');

7.同步索引

variable jobno number;begindbms_job.submit(:jobno,'pkg_sp_tools.p_cont_sys_index();',sysdate,'trunc(sysdate)+19/24+1'); --執行的是個性化方法。end;/

普通的就是用:

exec ctx_ddl.sync_index('idx_c_cons_name');

到此,全文檢索創建成功,contains函數就可以正常使用了。

注意:創建的過程中會出現ORA-29879:cannot create multiple domain index on a column listusing same indextype ,這說明在其他用戶下已經建立了該索引。