我遇到執行此查詢的問題。CONTAINS不適用於Oracle Text
SELECT * FROM gob_attachment
WHERE CONTAINS (gob_a_document, 'java') > 0
它給我
ORA-29902: error in executing ODCIIndexStart() routine
ORA-20000: Oracle Text error:
ORA-00942: table or view does not exist
29902. 00000 - "error in executing ODCIIndexStart() routine"
*Cause: The execution of ODCIIndexStart routine caused an error.
*Action: Examine the error messages produced by the indextype code and
take appropriate action.
一些谷歌上搜索我disovered這個問題可能是索引後,但是當我看了一下表和索引他們似乎確定了我。
創建索引腳本看上去就像是奇怪,我這個
CREATE INDEX FTSI_GOB_A_DOCUMENT
ON GOB_ATTACHMENT (GOB_A_DOCUMENT)
INDEXTYPE IS CTXSYS.CONTEXT;
唯一的事情是,當我看向編輯在SQL開發人員表的屬性表,我可以看到指數的那個工作狀態爲失敗。有誰知道這是什麼意思?也許數據庫的權利?
而且它的工作,當我使用
dbms_lob.instr(gob_a_document, utl_raw.cast_to_raw('java')) > 0
,而不是contains
感謝您的任何意見
附:它涉及到我剛纔的問題Oracle DBMS_LOB.INSTR and CONTAINS performance
UPDATE
重新創建索引和一些玩耍,我disovered我可以執行上面的查詢後,但它不會返回我什麼。
如果我使用CONTAINS(gob_a_document, '%')
進行嘗試,結果是26行,不知道查詢選擇了哪個鍵(至少我沒有發現任何明顯的東西,我會更多地進行調查)。問題可能是,我們正在使用Oracle 10g和存儲在從版本11
事情是索引已經在數據庫中創建,所以我在這裏發佈的腳本是從SQL開發人員複製和粘貼。所以我遵循了你的建議並重新創建了索引。現在查詢被執行,但它沒有給我任何結果(返回0行)。 (我相信它應該像100行一樣返回) – 2012-03-02 10:17:50
我們以各種格式(PDF,Word,HTML,...)存儲文檔。也是可能導致問題的DOCS。所以我的問題是,將存儲不受支持的文檔(DOCX)類型導致我的問題?該查詢將不會返回任何內容?我們正在使用Oracle 10g和列的數據類型是BLOB – 2012-03-02 12:39:19
將存儲不受支持的文檔類型(DOCX)導致你的問題?這當然是下注的方式。但是你需要自己調查一下,因爲我沒有10g的實例可以玩。 – APC 2012-03-02 13:20:49