关于oracle中clob字段查询慢的问题及解决方法

最近在用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这个函数,可以直接实现查找功能。参考http://www.jb51.net/article/104854.htm中所介绍的具体用法,修改如下:

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字段慢的一个方法.希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

时间: 2017-02-04

特殊用法:统计字符串中 E 出现的次数: SELECT LENGTHB(TRANSLATE('ABCDEFGEFGDBE','E'||'ABCDEFGEFGDBE','E')) FROM DUAL; 等同于: SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL; Translate 的用法 一.语法: TRANSLATE(string,from_str,to_str) 二.目的 返回

一.背景 一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录. 二.解决 select id from group by id having count(*) > 1 按照id分组并计数,某个id号那一组的数量超过1条则认为重复. 如何查询重复的数据 select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 PS:将上面的>号改为=号就可以查询出没有重复的数据了

Oracle按不同时间分组统计的sql 如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- 14-2月 -08 20 10-3月 -08 2 14-4月 -08 6 14-6月 -08 75 24-10月-09 23 14-11月-09 45 04-8月 -10 5 04-9月 -10 44 04-10月-10 88 注意:为了显示更直观,如下查询已皆按相应分组排序 1.按年份分组 select to_char(expo

Web_THBC 为表示层也就是页面(.aspx) BLL_THBC 为业务逻辑层 DAL_THBC 为数据库交互层 (向数据库执行SQL语句) Model_THBC 为实体类 DbHelper 为数据库连接类 统计个专营店的男女数量 复制代码 代码如下: select dua.UARTERS_ID,dua.UARTERS_NAME ,sum(case when sex = '1' then 1 else 0 end) as Man ,sum(case when sex = '0' then 1

前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析.一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该. 然后就开始百度,多种条件下的统计.然后有一种语法让我眼前一亮,case when then else end 当满足CASE设定的条件时,就可以执行then语句.由于我要做的分组查询统计,是要罗列每一种情况,而且根据输入的"管理员编号"不同返回不同结果,结果记录的条数和每一种情况是可知的,这个语法完全可用 核心代码如下: SEL

前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致.如果执行频繁的SQL,往往容易遭遇一些并发性的问题. 那么如何查看ORACLE数据库某个SQL的执行频率/次数呢? 下面来看看完整的示例代码. 一.查询执行最慢的sql select * from (select sa.SQL_TEXT, sa.SQL_FULLTEXT, sa.EXECUTIONS "执行次

MySQL开启通用查询日志general log mysql打开general log之后,所有的查询语句都可以在general log文件中以可读的方式得到,但是这样general log文件会非常大,所以默认都是关闭的.有的时候为了查错等原因,还是需要暂时打开general log的(本次测试只修改在内存中的参数值,不设置参数文件). general_log支持动态修改: mysql> select version(); +-----------+ | version() | +------

首先说一下本人使用的版本: 5.5 在很多复杂查询时, 往往需要原生语句进行查询, 在 laravel 中, 我们可以这样使用原生查询 $user = DB::select('select * from users where id= ?', [1]) 查询构建器 https://laravel-china.org/docs/laravel/5.5/queries#where-clauses $sql = '(FROM table_name1 LEFT JOIN table_name2 ON t

一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统.ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言. Oracle数据库之所以发展的很好,主要也是因为Oracle是全世界最早采用SQL语句的数据库产品. SQL功能强大,概括起来,它可以分成以下几组: 复制代码 代码如下: DML(Data Manipulation Language) 数据操作语言,用于

insert into MICS_WorkPlan_RestDays select * from OPENROWSET('SQLOLEDB', 'SERVER=192.168.2.97;uid=用户名;pwd=密码;Database=数据库','select * from v_restdays(sql语句,可执行存储过程)') as a 此语句可用来将另一服务器中的数据插入到本数据库中的某一表内

复制代码 代码如下: selectb.tablespace_name,mbytes_alloc,mbytes_free from(select round(sum(bytes)/1024/1024) mbytes_free,tablespace_name from dba_free_space group by tablespace_name) a, (select round(sum(bytes)/1024/1024) mbytes_alloc,tablespace_name from dba

具体操作: 根据master.dbo.sysprocesses中的spid和blocked查找当前阻塞语句的主人,然后使用DBCC INPUTBUFFER ()查看阻塞语句. 例子: 打开三个查询分析器 A.B.C 创建一个测试用的表 testDia Create Table testDia(ID int); 在A执行以下语句: Begin tran Insert Into testDia Values(1); 在B执行以下语句: Select * from testDia 当前情况:B中没有显

在数据库教程设计时必须注意时间字段为int(11)这样,保存在数据库的是一个数字型日期时间戳,我们可以用mktime函数求出当前日期的时间戳进行加减就OK了,下面看实例 //一个月 复制代码 代码如下: $lastMonth = mktime(date('h'),date('i'),date('s'),date('m')-1,date('d'),date('y')); $where .= " dtime > $lastMonth"; //三个月 复制代码 代码如下: $lastT

Oracle数据库查看一个进程是如何执行相关的实际SQL语句 复制代码 代码如下: SELECT b.sql_text, sid, serial#, osuser, machine      FROM v$session a, v$sqlarea b      WHERE a.sql_address = b.address; 查询前台发出的SQL语句. 复制代码 代码如下: select user_name,sql_text  from v$open_cursor  where sid in (

这篇文章介绍一下如何对sqlplus执行的sql语句结果进行判断. 环境准备 使用Oracle的精简版创建docker方式的demo环境,详细可参看: https://www.jb51.net/article/153533.htm 常见问题 在sqlplus中执行sql语句,如果直接使用命令行的方式调用时会碰到两个问题: 问题1: 需要进行交互性的输入 问题2:结果的判断不能通过返回值来确认 解决方式 在脚本调用里,解决方式如下 问题1可以通过前文提到的Here Document来解决. 问题2

Mysql 查询blob数据很慢,关于oracle中clob字段查询慢的问题及解决方法相关推荐

  1. mysql clob转string_Java获取Oracle中CLOB字段转换成String

    Java获取Oracle中CLOB字段转换成String : try {PreparedStatement stmt = session.connection().prepareStatement(s ...

  2. java Clob转CLOB_Java获取Oracle中CLOB字段转换成String

    Java获取Oracle中CLOB字段转换成String : try {PreparedStatement stmt = session.connection().prepareStatement(s ...

  3. oracle clob 查询换行,oracle中Clob字段中的回车换行在jsp中展示的问题

    在开发过程出现这么一个问题: 比如:一个字段content 类型CLOB,这其中存的有可能复制粘贴过来的word excel html中的内容,用java将这些内容存入,存入后有特殊的符号 比如回车换 ...

  4. oracle报无效月份 注册表,在oracle中插入时间时出现“无效的月份”解决方法

    这个问题是我曾经在使用中遇到的,在网上搜了一下,发现很多人都遇到过,并且也说明了很多解决方法.引起这个问题是有很多种可能的,现在我将在网上收集的资料结合我自己的解决经验总结一下,希望对大家有帮助. 我 ...

  5. java oracle 换行,oracle中Clob字段中的回车换行在jsp中展示的问题

    在开发过程出现这么一个问题: 比如:一个字段content 类型CLOB,这其中存的有可能复制粘贴过来的word excel html中的内容,用java将这些内容存入,存入后有特殊的符号 比如回车换 ...

  6. Mysql 查询blob数据很慢_blob存入数据库很慢

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. oracle查询blob数据,C#查询Oracle clob blob数据

    1.写SQL的话直接写就好了,注意不要出现count聚合函数等,一定要用的话,用count(*) over() public static ListQueryDate(string date, str ...

  8. mysql++读写BLOB数据

    mysql++读写BLOB数据 1.使用sql_create_n宏函数,建立数据库表字段与对象.    #define sql_create_2(NAME, CMP, CONTR, T1, I1, T ...

  9. MySql下大数据量级别(1000万+)优化查询和操作方法

    MySql下大数据量级别(1000万+)优化查询和操作方法 一.[原则一]: insert into tb (...) values(...),(...)...; 要比 insert into tb ...

最新文章

  1. (mfc)将字符串中的字符逐个按行输出_C语言中字符串输入输出
  2. 一款小巧好用的MAC地址扫描器
  3. rmi 反序列化漏洞_IDEA动态调试(二)——反序列化漏洞(Fastjson)
  4. MTK Project Clone
  5. CF908G New Year and Original Order 数位DP
  6. 用户体验设计答疑对话(半吊子和纯外行
  7. Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)
  8. HDU5686 Problem B【递推】
  9. 通过ajax获取经纬度,通过百度地图获取经纬度
  10. excel 趋势线的定义
  11. 文后参考文献著录规则
  12. 基于springboot网上书城系统
  13. TCP协议如何保证可靠传输
  14. ASRT语音识别asrserver http协议测试专用客户端
  15. 华为钱包开卡显示服务器异常,华为手机喜迎微信指纹支付 会遇到的11大常见问题!...
  16. 高数篇:05柯西定理和泰勒公式
  17. 《有效的单元测试》第三章
  18. 1428D - Bouncing Boomerangs(思维+构造+贪心)
  19. 十大Web压力测试工具
  20. 石英晶振的发展趋势及应用

热门文章

  1. python脚本写log日志文件
  2. 四面阿里斩获offer定级P7,2021最新最全阿里巴巴68道高级面试题
  3. linux记录wifi流量,统计wifi流量的脚本
  4. 华为鸿蒙系统发展历程,华为鸿蒙操作系统怎么样 鸿蒙操作系统的发展历程介绍...
  5. 我和计算机做游戏课后反思,小班游戏我和风儿做游戏教案反思
  6. VLOOKUP函数用法(1)将两个表按相同数据进行匹配
  7. 二氧化硅干燥剂原理是什么?
  8. 关于讯飞错误码 21002 的问题解决反思
  9. MRI较传统X线、CT成像的优势
  10. 【Oracle】Oracle 19.3 数据库软件安装与建库详细教程