instr和substr存储过程,分析内部大对象的内容instr函数与substr函数
instr函数用于从指定的位置开始,从大型对象中查找第N个与模式匹配的字符串。
用于查找内部大对象中的字符串的instr函数语法如下:
dbms_lob.instr(
lob_loc in blob,
pattern in raw,
offset in integer := 1;
nth in integer := 1)
return integer;dbms_lob.instr(
lob_loc in clob character set any_cs,
pattern in varchar2 character set lob_loc%charset,
offset in integer:=1,
nth in integer := 1)
return integer;lob_loc为内部大对象的定位器
pattern是要匹配的模式
offset是要搜索匹配文件的开始位置
nth是要进行的第N次匹配substr函数
substr函数用于从大对象中抽取指定数码的字节。当我们只需要大对象的一部分时,通常使用这个函数。
操作内部大对象的substr函数语法如下:
dbms_lob.substr(lob_loc in blob, amount in integer := 32767,offset in integer := 1)
return raw;dbms_lob.substr(lob_loc in clob character set any_cs, amount in integer := 32767,offset in integer := 1)
return varchar2 character set lob_loc%charset;
其中各个参数的含义如下:
lob_loc是substr函数要操作的大型对象定位器
amount是要从大型对象中抽取的字节数
offset是指从大型对象的什么位置开始抽取数据。
如果从大型对象中抽取数据成功,则这个函数返回一个 raw 值。如果有一下情况,则返回null:1 任何输入参数尾null2 amount < 13 amount > 327674 offset < 15 offset > LOBMAXSIZE
示例如下:declare source_lob clob;pattern varchar2(6) := 'Oracle';start_location integer := 1;nth_occurrence integer := 1;position integer;buffer varchar2(100);
beginselect clob_locator into source_lob from mylobs where lob_index = 4;position := dbms_lob.instr(source_lob, pattern, start_location, nth_occurrence);dbms_output.put_line('The first occurrence starts at position:' || position);nth_occurrence := 2;select clob_locator into source_lob from mylobs where lob_index = 4;position := dbms_lob.instr(source_lob, pattern, start_location, nth_occurrence);dbms_output.put_line('The first occurrence starts at position:' || position);select clob_locator into source_lob from mylobs where lob_index = 5;buffer := dbms_lob.substr(source_lob, 9, start_location);dbms_output.put_line('The substring extracted is: ' || buffer);
end;
/
The first occurrence starts at position:8
The first occurrence starts at position:24
The substring extracted is: Oracle 9iPL/SQL 过程已成功完成。

作者:hellofei

转载于:https://www.cnblogs.com/lxl57610/p/9253452.html

dbms_lob包学习笔记之三:instr和substr存储过程相关推荐

  1. linux系统管理学习笔记之三----软件的安装

    linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

  2. 学习笔记之三人表决器FPGA

    学习笔记之三人表决器FPGA 新手入门,多多包涵,不足错误之处,望指出 三人表决器,顾名思义就是三人投票,只要达到两票以上,就取胜. 设a,b,c为三个投票的人,输出的为f,投为1,不投为0,两票以上 ...

  3. python plt包_Python 数据可视化-Matplotlib包学习笔记(一)

    Python 数据可视化 本文主要参照Matplotlib的官方教程进行整理,作为个人的学习笔记进行分享,欢迎相互讨论. Matplotlib包学习笔记(一) 本文主要简单介绍一下Matplotlib ...

  4. 2010年SQLite学习笔记之三

    2010年SQLite学习笔记之三 一.如何备份数据库 先打开数据库test.db E:/sqlite/tool/sqlite-3_6_22>sqlite3  D:/Test/debug/tes ...

  5. MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务

    文章目录 前言 一.触发器 提前准备测试表 1.1.创建触发器 1.2.删除触发器 二.存储过程 2.1.认识变量 2.1.1.系统变量 2.1.2.用户变量 2.2.存储过程创建 2.3.删除存储过 ...

  6. Netty4 学习笔记之三-粘包和拆包

    名词解释 粘包: 会将消息粘粘起来发送.类似吃米饭,一口吃多个饭粒,而不是一粒一粒的吃. 拆包: 会将消息拆开,分为多次接受.类似喝饮料,一口一口的喝,而不是一口气喝完. 简单的来说: 多次发送较少内 ...

  7. R语言dplyr包学习笔记(吐血整理宇宙无敌详细版)

    出处:AI入门学习 dplyr包主要用于数据清洗和整理,主要功能有:行选择.列选择.统计汇总.窗口函数.数据框交集等是非常高效.友好的数据处理包,学清楚了,基本上数据能随意玩弄,对的,随意玩弄,简直大 ...

  8. 【Java学习笔记之三十一】详解Java8 lambda表达式

    Java 8 发布日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Java 8之前 ...

  9. 【转载】R语言dplyr包学习笔记(吐血整理宇宙无敌详细版)

    出处:AI入门学习 dplyr包介绍 dplyr包主要用于数据清洗和整理,主要功能有:行选择.列选择.统计汇总.窗口函数.数据框交集等是非常高效.友好的数据处理包,学清楚了,基本上数据能随意玩弄,对的 ...

最新文章

  1. 敏捷项目管理任务卡片多选
  2. QT利用QCustomplot绘制折线图海底声速梯度图,解决一条曲线中一个X值对应两个Y值
  3. Java dispose()函数窗口无法关闭
  4. java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...
  5. [Java基础]反射获取成员方法并使用练习
  6. 近年来量子计算机,近年来量子计算机研究的进展和困难.doc
  7. ios 性能优化之图形性能测试
  8. oracle监控资源管理器
  9. wm java 载入jad错误_jad文件的错误代码,分享
  10. (2)香橙派+apache2与php+天猫精灵=自建平台语音支持--香橙派操作系统安装
  11. AIDL原理快速理解与应用
  12. 生命密码:你的第一本基因科普书
  13. RouterOS 自动拨号直至获得指定IP段IP的脚本
  14. 行政执法岗、基层岗申论必背
  15. 历史周期律 多久_什么是“历史周期律”?
  16. 分享一款免费实用的野外调查巡检、户外旅行、外业作业地图数据采集软件
  17. 基于java的简单英雄联盟胜率计算
  18. 小程序setData数据量大时,导致卡顿怎么解决
  19. python123九宫格输入_python制作朋友圈九宫格图片
  20. Win10能联网,但右下角网络图标变成小地球,显示无Internet连接的解决办法

热门文章

  1. 【译】Privacy and machine learning: two unexpected allies
  2. 【译】IPFS — The Permanent, Distributed Web
  3. 如何学习区块链技术?
  4. [以太坊源代码分析] I.区块和交易,合约和虚拟机
  5. Android污点分析工具flowdroid源码简析
  6. Android 插件技术实战总结
  7. Linux 解压后的启动流程分析
  8. 【问链-EOS公开课】第九课 EOS 数据库与持久化 API(二)
  9. QML编程之旅 -- 事件处理
  10. matlab 提取数列里非零_什么!科研交流免费教Matlab?