`

存储过程实现oracle的instr函数

 
阅读更多
CREATE PROCEDURE instr(vchar varchar(250),chr VARCHAR(250),num INTEGER)
returning integer;
DEFINE out_number INTEGER;
DEFINE here_length INTEGER;
DEFINE end_length INTEGER;
DEFINE here_char VARCHAR(250);
DEFINE num_flag INTEGER;
LET num_flag = 1;
LET here_length = 1;
LET end_length = length(chr);
LET out_number = -10000;
while here_length + end_length - 1 <= length(vchar)
  LET here_char = substr(vchar,here_length,end_length);
  IF here_char = chr AND num_flag = num THEN
    LET out_number = here_length;
    LET here_length = length(vchar) + 1;
  ELIF here_char = chr AND num_flag != num THEN
    LET num_flag = num_flag + 1;
  END IF;
  LET here_length = here_length + 1;
END WHILE;
RETURN out_number;
END PROCEDURE;
分享到:
评论

相关推荐

    Oracle中instr和substr存储过程详解

    instr和substr存储过程,分析内部大对象的内容 instr函数 instr函数用于从指定的位置开始,从大型对象中查找第N个与模式匹配的字符串。 用于查找内部大对象中的字符串的instr函数语法如下: dbms_lob.instr( lob_...

    Oracle中instr函数使用方法

    在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束

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

    13.oracle函数 26 (1)字符函数 26 (2)数学函数 26 (3)日期函数 27 (4)给表取别名的时候,不能加as;但是给列取别名,是可以加as 27 (5)转换函数 27 (6) to_char(date,'format') 27 (7) to_date(string,'format') 28 ...

    oracle 函数大全.txt

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

    Oracle_Database_11g完全参考手册.part3/3

    通过学习《Oracle Database 11g完全参考手册》,您可以了解如何实现最新的安全措施,如何调优数据库的性能,如何部署网格计算技术。附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 ...

    Oracle_Database_11g完全参考手册.part2/3

    通过学习《Oracle Database 11g完全参考手册》,您可以了解如何实现最新的安全措施,如何调优数据库的性能,如何部署网格计算技术。附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 ...

    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 对存储过程程序进行...

    最全的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学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:用于连接到oracle数据库,也可实现用户的切换 用法:conn 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户连接时,必须带上sysdba或sysoper 例子: 3. 断开连接(disc) 说明:断开与当前数据库的连接 ...

    oracle数据库经典题目

    系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 ...

    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 ...

    数据库基础

    第十六章 存储过程和函数 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';...

    SQL21日自学通

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

    mysql基础只是总结

    mssql 2000 Access DB2 oracle 【mysql安装】 1、官方下载mysql win32 msi 2、点击安装 3、配置 4、查看是否安装成功 通过cmd 输入netstat -a搜索3306端口是否处于listening状态 【mysql服务的启动与停止】 1...

    21天学习SQL V1.0

    INSTR ............................................................................................................. 88 LENGTH..............................................................................

Global site tag (gtag.js) - Google Analytics