请问在oracle查询clob字段的内容怎么办呢?

我在ORACLE10G中,有个表的字段是文章的内容CLOB字段,我通过LIKE 查询这个字段的内容,但是非常非常的慢,怎么才能让它快起来啊??

4个回答

建议使用全文检索(FULL TEXT SEARCH)。

用ORACLE8i中的intermedia text或者oracle9i的text对CLOB字段建一个CTXSYS.CONTEXT 类型的索引, 然后在查询时用CONTAIN作为查询条件.代码如下:

[code="sql"]--创建表
CREATE TABLE tb_clob(
userid NUMBER PRIMARY KEY,
text CLOB
);
--建立索引
CREATE INDEX search_idx
ON tb_clob(text)
INDEXTYPE IS ctxsys.CONTEXT;
--查询
SELECT COUNT(*)
FROM tb_clob
WHERE contains(text, 'index', 1) > 0
[/code]

dbms_lob.instr(colname,searchValue,1,1)>0
这样可能会好点.
全文检索,关系数据库总的是不咋的吧.

对大字段的查询还是全文检索吧

如果是大文本,还是建议使用全文检索。用CLOB自带的函数检索,效率肯定不怎么的。关键是用不上索引。

建议结合lucene使用。数据库的全文检索有点鸡肋。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐