`
mymobile
  • 浏览: 180996 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

instr和substr存储过程

阅读更多

此资料从网上获得,存放在此,以便以后查找。。。

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 任何输入参数尾null
 2 amount < 1
 3 amount > 32767
 4 offset < 1
 5 offset > LOBMAXSIZE
示例如下:

declare
   source_lob clob;
   pattern varchar2(6) := 'Oracle';
   start_location integer := 1;
   nth_occurrence integer := 1;
   position integer;
   buffer varchar2(100);
begin
   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);
  
   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 9i

PL/SQL 过程已成功完成。

分享到:
评论

相关推荐

    Oracle中instr和substr存储过程详解

    主要介绍了Oracle中instr和substr存储过程详解,需要的朋友可以参考下

    oracle使用管理笔记(一些经验的总结)

    (1)存储过程简单版本 47 (2)存储过程升级版本 49 (3)函数 50 (4)包 50 (5)触发器 51 PL/SQL语法数据类型 57 (6)PL/SQL进阶控制结构 60 (7)PL/SQL进阶分页过程 62 (8)PL/SQL进阶例外 62 (9)视图 62 22.数据库管理+表...

    Oracle_Database_11g完全参考手册.part3/3

     构造SQL语句、过程、查询和子查询  使用虚拟专用数据库和透明数据加密优化安全性  使用SQL*oader乘10racle Data Pump导入和导出数据  使用SQL重放、变更管理和缓存结果  使用闪回和自动撤消管理功能避免人为...

    Oracle_Database_11g完全参考手册.part2/3

     构造SQL语句、过程、查询和子查询  使用虚拟专用数据库和透明数据加密优化安全性  使用SQL*oader乘10racle Data Pump导入和导出数据  使用SQL重放、变更管理和缓存结果  使用闪回和自动撤消管理功能避免人为...

    oracle 函数大全.txt

    0,解析字符串的存储过程,1.返回与指定的字符对应的十进制数; ,2.给出整数,返回对应的字符;,3.连接两个字符串; 4.返回字符串并将字符串的第一个字母变为大写; 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回...

    Oracle8i_9i数据库基础

    第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1 创建过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑存储过程源码 279 §16.2.3.2 对存储过程程序进行...

    数据库基础

    第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1 创建过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑存储过程源码 279 §16.2.3.2 对存储过程程序进行...

    orcale常用命令

    8、存储函数和过程 查看函数和过程的状态 SQL&gt;select object_name,status from user_objects where object_type='FUNCTION'; SQL&gt;select object_name,status from user_objects where object_type='PROCEDURE';...

    Super string 库

    //以subStr为标记切割instr为多个单词,存储于subs std::string super_CString::getTimeString(bool fgf);//获得表示当前时间的字符串,fgf表示是否需要分隔符 std::string super_CString::getDateTimeString...

    SQL21日自学通

    存储过程包和触发机制403 总结406 问与答407 校练场407 练习407 第19 天TRANSACT-SQL 简介408 目标408 TRANSACT-SQL 概貌408 对ANSI SQL 的扩展408 谁需要使用TRANSACT-SQL409 TRANSACT-SQL 的基本组件409 数据...

    Oracle事例

    SQL&gt;select table_name,cache from user_tables where instr(cache,\'Y\')&gt;0; 28、约束条件 create table employee (empno number(10) primary key, name varchar2(40) not null, deptno number(2) default ...

    最全的oracle常用命令大全.txt

    8、存储函数和过程 查看函数和过程的状态 SQL&gt;select object_name,status from user_objects where object_type='FUNCTION'; SQL&gt;select object_name,status from user_objects where object_type='PROCEDURE';...

    oracle数据库经典题目

    SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据...

    mysql基础只是总结

    instr(字符串,字符) 寻找字符所在字符串的位置 char ascii编码 转化为字符 ord 字符转化为ascii编码 substring(字符串,开始位置,长度); length(字符串) 字符串长度 substr(字符串,开始位置,长度); lpad 往...

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

    日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...

    21天学习SQL V1.0

    SUBSTR........................................................................................................... 85 TRANSLATE.............................................................................

Global site tag (gtag.js) - Google Analytics