关于oracle中clob字段查询慢的问题及解决方法
2017-02-07 14:33
981 查看
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。
blob字段直接用
select * from table_name where column like ‘%%'查找的时候是不能实现的 ,主要是字段类型不符,就想到了
字段转换成varchar2类型,然后再进行查询
select * from table_name where utl_raw.cast_to_varchar2(column) like ‘%oracle%';
但是却报如下的错误:
在这之后作了修改:
select * from table_name where utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(column,2000,1)) like '%oracle%' ;
这样之后就可以实现查询了,但是这样的查询总是有些不妥,在网上看到有DBMS_LOB.instr这个函数,可以直接实现查找功能。参考https://www.geek-share.com/detail/2697449976.html中所介绍的具体用法,修改如下:
select * from table_name where dbms_lob.instr(column,utl_raw.cast_to_raw('所要匹配的内容'),1,1)<>0;
这样就可以顺利的查找出来了。
以上只是自己做了个简单的处理,相信肯定有更好的方法,希望大家帮忙,但是感觉dbms_lob函数下的方法真的很好用。
oracle clob字段在查询很慢这是众所周知的
还是要建立表的索引:
create index search_id on table(字段) indextype is CTXSYS.CONTEXT;
查询:
select * from table where contains(字段,'内容',1)>0;
后续:
这样查询结果很快,但是查出来的数据不是我想要的,具体可能是程序的问题,不过这是解决查询clob字段慢的一个方法.希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- 关于oracle中clob字段查询的问题
- 关于hibernate查询,数据库字段为clob的错误原因及解决方法记录
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- 关于Oracle的exp和dblink转移数据效率比较以及DBLINK查询大字段方法
- oracle clob类型字段查询方法
- 解决比较Oracle中CLOB字段问题
- 关于ASP.NET“操作必须使用一个可更新的查询”问题的解决方法
- 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理
- 关于Oracle Exp-00003问题的解决方法
- 关于oracle sql语句查询时 表名和字段名要加双引号的问题详解
- Oracle Apex 实用笔记系列 5 - 在Apex把csv导入数据库Clob字段再导入到各自对应列的解决方法
- 解决比较Oracle中CLOB字段问题--转自混世者的专栏
- 关于Oracle Exp-00003问题的解决方法
- 解决比较Oracle中CLOB字段问题
- Oracle分页查询中排序与效率问题解决方法详解
- 关于oracle中无法查询中文条件的解决方法
- oracle翻页,排序字段重复,翻页结果重复 问题的解决方法
- 关于Oracle用sqlldr导入限制值长度大于255问题解决方法
- 关于Yii中CGridView关联表字段的filter问题解决方法
- 关于oracle中blob字段查询的问题