`

oracle中查找Blob类型数据中的字符串

 
阅读更多

 

  前景回顾:    刚一个大MM 问我如何查询Blob类型数据的字符串.

  解决方案:    使用 dbms_lob.instr 和 CAST_TO_RAW可解决:

   示例:

    select * from tesu where dbms_lob.instr(msg,utl_raw.CAST_TO_RAW('darren'),1,1) >0.

  

   扩展:

    1), 插入: 可使用to_blob函数

                insert into tesu(msg)  values(to_blob('adddda')) ;

           还有一种是使用empty_blob()函数,先插入一个空的, 然后在进行插入值

          java使用jdbc, 简单,略.

     2). 更新: 还是使用to_blob

          update tesu set msg = to_blob('adddda')  where id =1;

 

     3)与clob的区别

      BLOB全称为二进制大型对象(Binary   Large   Object)。

                      它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节  

      CLOB全称为字符大型对象(Character   Large   Object)。它与LONG数据类型类似,

      只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集

      可存储的最大大小为4G字节

    4), 性能: 能不用尽量不用

           ???

    5), 其它

           a.  一个Blob/Clob字段包括lobindex和lobsegment

           b.  Lob缺省可以存放在表中(表字段),条件是:

               1.它的大小小于4kb

             2.并且在定义的时候没有使用(disable storage inrow)字句(缺省是enable)

                当lob大于4kb的时候它会被存放到lobsegment中

     c.    当lob存放在表中的时候,它可以被缓存,

                 对于它的操作效率远远高于存储在lobsegment中的lob(不用lobindex)

     d.   存储在lobsegment中的lob缺省不在缓冲区缓存,对于lob的读写都是物理IO,代价非常高,

                 所以对于大于4kb的lob字段千万不要频繁更新,效率非常低

     e. 存储在lobsegment中的lob可以在定义的时候指定使用cache(默认是nocache),

                 这对于中等大小的lob(比如几k~几十k)很有效果,减少物理IO

 

   备注一个不相关的:

        该MM在她的触发器中引用了自身表做了查询等操作,然后就报错啦..

        解决方法: 直接用当前记录就可以进行相应的操作,不要代入当前操作表. 

 

 

分享到:
评论

相关推荐

    Oracle数据库查找替换工具

    Oracle 数据库 查找替换工具 (*目前只支持Oracle) 在整个数据库中查找某个字符串。 支持字符串、CLOB、BLOB字段类型。 支持字符串替换功能。 可定义查找的表、字段、字段类型。 可同时查询多个字符串。

    sqlserver-oracle 数据类型对照

    - `PATINDEX`和`INSTR`查找字符串中的模式或子串。 - `REPLACE`和`STUFF`在SQL Server中用于替换子串,Oracle中无直接对应。 - `SOUNDEX`在两者中都用于生成字符串的语音表示。 - `SPACE`在Oracle中生成指定数量...

    Oracle实用教程_04章_Oracle数据类型和函数.pdf

    在Oracle中,数据类型是定义数据库中字段可以存储何种类型数据的关键元素。本章主要介绍了Oracle中的数据类型和函数,这对于理解和操作Oracle数据库至关重要。 首先,我们来看Oracle的基本数据类型,这些类型包括...

    Oracle 数据库查找替换工具

    可以在整个数据库中查找某个字符串。 支持 CHAR,VARCHAR NVARCHAR,CLOB,BLOB字段类型。 可批量查找,批量替换。 http://db.okof.net/dbr/

    在ORACLE数据库中如何对多媒体数据对象进行处理.pdf

    在实际应用中,开发者可以使用DBMS_LOB包中的函数和过程,例如DBMS_LOB.COPY用于复制LOB数据,DBMS_LOB.WRITE用于向LOB中写入数据,DBMS_LOB.GETLENGTH用于获取LOB的长度,DBMS_LOB.INSTR用于查找子字符串在LOB中的...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    二、 Oracle的数据类型 类型 参数 描述 字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char...

    oracle中xml经典案例

    2. **XPath**: XPath是用于在XML文档中查找信息的语言,Oracle支持XPath表达式在XMLType数据上的应用。 3. **XQuery**: XQuery是更强大的查询语言,可以用来检索、更新和操作XML数据。Oracle的XMLType支持XQuery 1.0...

    Oracle企业资产管理.pptx

    Oracle提供多种基本数据类型,例如CHAR(N)用于固定长度的字符串,VARCHAR2(N)用于可变长度字符串,NUMBER(P, S)用于数值数据,DATE用于日期时间,RAW(N)用于二进制数据。在选择数据类型时,要考虑存储效率和数据处理...

    三大数据库的数据类型及sql server08快捷键

    数据类型是数据库中的基本构建块,定义了数据的结构和意义。而SQL Server 2008中的快捷键则能提高开发人员和DBA的工作效率。 首先,我们来看三大数据库的数据类型: 1. **MySQL** 数据类型: - 数值类型:包括INT...

    Oracle如何对CLOB行字段来执行全文检索

    Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大文本数据。然而,在 Oracle8i 版本之前,对大字段 CLOB 仍然不支持在 where 子句直接的 Like 操作。这使得开发者无法直接对 CLOB 字段中的内容进行 ...

    Oracle SQL(SQL for Oracle)

    1. **数据类型**:Oracle支持多种数据类型,包括数值型(如NUMBER)、字符串型(如VARCHAR2和CHAR)、日期/时间型(如DATE)、二进制大对象(BLOB)等。理解这些数据类型对于创建表结构和处理数据至关重要。 2. **...

    oracle常用问题解答

    **解答**: 在Oracle中,如果要在字符串中包含单引号,可以通过在两个单引号之间插入另一个单引号来实现。 - **示例**: 假设需要将字符串"John's"插入到某个字段中: ```sql INSERT INTO table_name (column_name)...

    oracle.txt;oracle.txt

    根据给定的文件信息,我们可以总结出一系列与Oracle数据库相关的知识点,主要集中在数据类型、函数应用以及字符串操作等方面。下面将对这些知识点进行详细的解析: ### 数据类型与存储 1. **字符类型**:`CHAR`是...

    oracle基础知识

    Oracle支持多种数据类型,如CHAR和VARCHAR2用于存储字符串,前者固定长度,后者可变长度,适合节省存储空间。NUMBER类型用于存储数值,具有可变长度的整数和小数部分。DATE类型存储日期和时间,范围从公元前到公元后...

    Oracle数据库常用函数

    4. **INSTR**:此函数用于在一个字符串中查找指定子串第一次出现的位置。INSTR('Hello World', 'World')会返回6。 5. **LENGTH**:返回字符串的字符长度。例如,LENGTH('Hello')返回5。 6. **LOWER**:将字符串中...

    python3.3+cx_Oracle

    例如,Python 3.3对字符串和字节的处理与后来的版本有所不同,这可能会影响你处理数据库返回的二进制数据(如BLOB类型)。因此,你需要确保你的代码能正确处理这些差异。 总的来说,Python 3.3结合cx_Oracle提供了...

    ORACLE基础学习培训课件.pptx

    Oracle支持多种数据类型,如VARCHAR2用于存储可变长字符串,NUMBER用于存储数字,DATE用于日期,ROWID标识行的唯一地址,BLOB用于存储非结构化二进制数据,如图片和视频,而CLOB则用于存储文本数据。 SQL语言是与...

Global site tag (gtag.js) - Google Analytics