64位環境AUTO_FILTER和INSO_FILTER失效的問題
從10g開始,Oracle推出了AUTO_FILTER來替代INSO_FILTER,不過根據Oracle的描述,AUTO_FILTER更像是在INSO_FILTER上增加了一些自動的判斷而已。因此,可以認為二者是相同的問題。
和EYGLE聊天時他提到,碰到了一個奇怪的現象,11g的Linux平臺64位Oracle環境建立全文索引後,索引為空。同樣的問題在32位環境中沒有問題。
看一個簡單的例子:
SQL> SELECT * FROM V$VERSION;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL> HOST more /home/oracle/a.txt
You remove the substitute key columns for a table by specifying NULL for the
column_list or column_table parameter in the SET_KEY_COLUMNS procedure in
the DBMS_APPLY_ADM package. If the table has a primary key, then the table's primary
key is used by any apply process for local changes to the database after you remove
the substitue primary key.
SQL> CREATE TABLE T_FILTER (ID NUMBER PRIMARY KEY, DOC VARCHAR2(30));
Table created.
SQL> INSERT INTO T_FILTER VALUES (1, 'a.txt');
1 row created.
SQL> COMMIT;
Commit complete.
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_FILE', 'FILE_DATASTORE');
3 CTX_DDL.SET_ATTRIBUTE('TEST_FILE', 'PATH', '/home/oracle');
4 END;
5 /
PL/SQL procedure successfully completed.
SQL> CREATE INDEX IND_T_FILTER_DOC ON T_FILTER (DOC) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS('DATASTORE TEST_FILE FILTER CTXSYS.AUTO_FILTER');
Index created.
SQL> SELECT COUNT(*) FROM DR$IND_T_FILTER_DOC$I;
COUNT(*)
----------
24
SQL> SELECT TOKEN_TEXT
2 FROM DR$IND_T_FILTER_DOC$I;
TOKEN_TEXT
----------------------------------------------------------------
ADM
AFTER
APPLY
CHANGES
COLUMN
COLUMNS
DATABASE
DBMS
KEY
LIST
LOCAL
NULL
PACKAGE
PARAMETER
PRIMARY
PROCEDURE
PROCESS
REMOVE
SET
SPECIFYING
SUBSTITUE
SUBSTITUTE
TABLE
USED
24 rows selected.
可以看到,32位Linux上沒有問題,而在64位Linux上則出現下面的問題:
SQL> SELECT * FROM V$VERSION;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL> HOST more /opt/oracle/a.txt
You remove the substitute key columns for a table by specifying NULL for the
column_list or column_table parameter in the SET_KEY_COLUMNS procedure in
the DBMS_APPLY_ADM package. If the table has a primary key, then the table's primary
key is used by any apply process for local changes to the database after you remove
the substitute primary key.
SQL> CREATE TABLE T_FILTER (ID NUMBER PRIMARY KEY, DOC VARCHAR2(30));
Table created.
SQL> INSERT INTO T_FILTER VALUES (1, 'a.txt');
1 row created.
SQL> COMMIT;
Commit complete.
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_FILE', 'FILE_DATASTORE');
3 CTX_DDL.SET_ATTRIBUTE('TEST_FILE', 'PATH', '/opt/oracle');
4 END;
5 /
PL/SQL procedure successfully completed.
SQL> CREATE INDEX IND_T_FILTER_DOC ON T_FILTER (DOC) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS('DATASTORE TEST_FILE FILTER CTXSYS.AUTO_FILTER');
Index created.
SQL> SELECT COUNT(*) FROM DR$IND_T_FILTER_DOC$I;
COUNT(*)
----------
0
查詢了一下metalik,感覺和文件Bug No. 7421367描述很接近,對於64位的環境,Oracle安裝的時候漏掉了一些用來過濾文件的driver,導致INSO_FILTER和AUTO_FILTER無效。
在Solaris上的64位Oracle11g,則沒有發現這個問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-606828/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- session跟蹤失效的問題和原因Session
- 【環境踩坑】ubuntu下jupyter的環境設定問題Ubuntu
- 解決所有環境問題
- golang 開發環境問題Golang開發環境
- Golang GRPC 環境 問題GolangRPC
- css失效問題CSS
- webpack(1)安裝環境與解決環境問題Web
- WINDOWS環境下ORACLE啟動的問題WindowsOracle
- mac 配置mysql環境 Navicat 問題MacMySql
- Flutter配置環境常見問題Flutter
- go專案起步-環境問題Go
- MyBatis order by失效問題MyBatis
- 外掛失效問題
- react native搭建環境時遇到的問題React Native
- CentOS下搭建LAMP環境及遇到的問題CentOSLAMP
- 關於環境變數設定的問題變數
- 搭建測試環境後出現的問題
- 異構環境的分散式事務問題分散式
- CentOS環境下mysql遠端連線和問題解決CentOSMySql
- 一、Windows 環境搭建問題彙總Windows
- app 測試環境切換問題APP
- redhat環境下vnc使用若干問題RedhatVNC
- JDBC連線MySQL失效的問題JDBCMySql
- 再談量化策略失效的問題
- 請教Banq和各位道友連線失效問題
- 關於幾個MySQL環境問題的對比MySql
- OSCache叢集環境下快取同步的問題快取
- 【爬坑】.Net編譯環境導致的問題編譯
- Spark 環境問題記錄和解決方法Spark
- Fabric 環境搭建遇到問題及解決
- **開發環境一些基本問題開發環境
- Linux環境變數問題彙總Linux變數
- Windows-Qt-EclipseCDT 環境問題集WindowsQTEclipse
- linux伺服器環境搭建問題Linux伺服器
- eclipse環境下lombok中的註解失效 @AllArgsConstructor @Slf4j 註解失效EclipseLombokStruct
- 聊一聊MySQL索引失效的問題MySql索引
- C++vector迭代器失效的問題C++
- Java環境變數配置的最佳實踐和常見問題解決方案Java變數