怎么对ORACLE里的CLOB字段进行oracle clob 模糊查询询

对于内容很多的时候clob打字段模糊查询很慢,整理一个小方法:
1,在查询的列上建索引
& & & & 2,对于要查询的clob字段使用一下语句创建索引
& CREATE&INDEX&idx_zs_info_note
ON&zs_info(note)
INDEXTYPE&is&CTXSYS.CONTEXT; &
3.查询的时候对于clob字段使用如下方法,不要使用like
&select&*&frominfo&where&contains(note,'XXXXX')&0&&order&by&id&desc&
还有一种方法可以使用dbms_lob.instr(note,'XXXX')&0 但是没有上面的快
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5391次
排名:千里之外
原创:16篇
评论:12条
(3)(1)(1)(3)(3)(1)(1)(1)(2)(1)oracle查询clob大字段
oracle查询clob大字段
--创建表 & &
CREATE TABLE tb_clob(
userid NUMBER PRIMARY KEY,
--建立索引
CREATE INDEX search_idx
ON tb_clob(text)
INDEXTYPE IS ctxsys.CONTEXT;
SELECT COUNT(*)
& FROM tb_clob
&WHERE contains(text, 'index', 1) & 0
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'oracle数据库中,字段类型是 clob类型 请教下各位大侠 怎样查询clob的数据?求完整的语句_百度知道查看: 1142|回复: 10
CLOB模糊查询
论坛徽章:0
记得以前经常能看到别人问clob支不支持like,回答基本都是不支持,都是建议使用***_clob.instr来解决(包名不记得了)。
今天遇到个clob模糊查询的问题,直接用clob字段like查询,没有任何问题啊。
是某个版本改了吗,版本是11.2.0.1.0
论坛徽章:0
自己顶下 55人浏览了都没人回复下吗
认证徽章论坛徽章:21
对clob进行模糊查询,这是一不合理的行为,详细的说下你的业务。
招聘 : 论坛徽章:471
不是改了,是被转换为varchar2了
dbms_lob.instr() 去查就行了,但是复杂的like要通过instr去实现是很麻烦的
论坛徽章:14
lastwinner 发表于
不是改了,是被转换为varchar2了
dbms_lob.instr() 去查就行了,但是复杂的like要通过instr去实现是很麻烦 ...
好像在哪里有说,&一定尺寸的CLOB可以被当作varchar2来处理。
招聘 : 论坛徽章:471
yulihua49 发表于
好像在哪里有说,
是的,11g前是小于等于4000字节的
论坛徽章:189
creating Oracle Text Index
论坛徽章:0
lastwinner 发表于
是的,11g前是小于等于4000字节的
11g之后呢 感觉不止4000字节啊
这个clob字段里存的是sql,有张基础表变了,查下哪些sql用到了,顺手打了个like '%tablename%'直接就有结果了。
论坛徽章:1
v_test CLOB:='a';
a VARCHAR2(10);
&&v_test:=LPAD('b',10000,v_test);
&&SELECT '1' INTO a FROM dual WHERE v_test LIKE '%a%';
&&dbms_output.put_line(a);
真的可以。
论坛徽章:0
九九乘法表 发表于
v_test CLOB:='a';
a VARCHAR2(10);
是啊 我还专门百度了一下这个问题 回复都是说不能使用like 建议使用dbms_lob.instr(),不过都是蛮早的问题,09~11左右。
所以我跑来请教大婶们是不是改过
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号

我要回帖

更多关于 oracle clob字段 的文章

 

随机推荐