我遇到执行此查询的问题。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