加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ORACLE DBMS_LOB.INSTR()函数用法

(2012-12-15 14:49:09)
标签:

hex到raw的转换错误

dbms_lob.instr

oracle

it

分类: Oracle笔记

 今天需要做一个查询,判断对表JC_CXFANGA中BLOB类型字段FANGA_SQL字段里面是否包含字符WCS,这时需要用到DBMS_LOC包中的函数DBMS_LOB.INSTR('被查询字段',‘查询内容’,开始位置,第几次出现)

DECLARE
       position  INTEGER;
       TYPE_BLOB JC_CXFANGA.FANGA_SQL%TYPE;

BEGIN
       FOR RX IN (SELECT FANGA_NO FROM JC_CXFANGA)
         LOOP
            SELECT FANGA_SQL INTO TYPE_BLOB FROM JC_CXFANGA WHERE FANGA_NO=RX.FANGA_NO;
            position := DBMS_LOB.INSTR(TYPE_BLOB,HEXTORAW(utl_raw.cast_to_raw('WCS')), 1, 1);
            IF position>0 THEN
              DBMS_OUTPUT.put_line('在查询方案:'||RX.FANGA_NO||'找到了');
            END IF;
       END LOOP;
     END;

刚开始没有加红色部分,报错,提示HEX到RAW转换错误,HEXTORAW和utl_raw.cast_to_raw详细参考网址:http://blog.csdn.net/duanning397/article/details/7684897

   扩展:在ORACLE中LOB类型专门用于存储大对象的数据,包括大文本,图形/图象,视频剪切等大数据

1.LOB类型

  ORACLE将lob分为两种:内部lob和外部lob

  内部lob包括:clob,blob和nclob三种类型,被存储在数据库中,并且支持事务操作

  外部LOB只有BFILE一种类型,该类型的数据被存储在操作系统OS文件中,并且不支持事务操作.

  CLOB/NCLOB用于存储用于存储大批量字符数据,BLOB用于存储大批量二进制数据,BFILE则存储着指向OS文件的指针

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有