精华内容
下载资源
问答
  • 主要介绍了Oracle中instr和substr存储过程详解,需要的朋友可以参考下
  • oracle 存储过程 instr 函数

    千次阅读 2013-04-26 16:59:43
    instr( string1, string2 [, start_position [, nth_appearance ] ] )  参数分析:  string1,源字符串,要在此字符串查找。 string2: 要在string1查找的字符串。 start_position: 代表string1 的哪个...

    instr( string1, string2 [, start_position [, nth_appearance ] ] )

      参数分析:

      string1,源字符串,要在此字符串中查找。  string2:  要在string1中查找的字符串。   start_position: 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。 nth_appearance: 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。

      注意:如果String2在String1中没有找到,instr函数返回0.

    有了这个函数, 可以我们怎么用呢, 这个时候, dual就起作用了, 我们可以这样:

      select instr("xxxxxx", "xxx") from dual.

      那么 dual到底是个什么东西呢?

     

      dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,例如上边,当我们需要使用一个函数时,就可以使用dual了。

     

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下:

      1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual;

      2、用来调用系统函数

      select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间

      select SYS_CONTEXT('USERENV','TERMINAL') from dual;--获得主机名

      select SYS_CONTEXT('USERENV','language') from dual;--获得当前 locale

      select dbms_random.random from dual;--获得一个随机数

      3、得到序列的下一个值或当前值,用下面语句

      select your_sequence.nextval from dual;--获得序列your_sequence的下一个值

      select your_sequence.currval from dual;--获得序列your_sequence的当前值

      4、可以用做计算器 select 7*9 from dual;

     

    *********************************************************************

    转自:http://www.cnblogs.com/yuxingfirst/archive/2012/11/15/2772341.html

    *********************************************************************

    展开全文
  • instr和substr存储过程

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

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

    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 过程已成功完成。

    展开全文
  • instr和substr存储过程,分析内部大对象的内容instr函数@H_404_5@instr函数用于从指定的位置开始,从大型对象查找第N个与模式匹配的字符串。用于查找内部大对象的字符串的instr函数语法如下:sql;">dbms_lob....

    instr和substr存储过程,分析内部大对象的内容

    instr函数@H_404_5@

    instr函数用于从指定的位置开始,从大型对象中查找第N个与模式匹配的字符串。

    用于查找内部大对象中的字符串的instr函数语法如下:

    sql;">

    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函数@H_404_5@

    substr函数用于从大对象中抽取指定数码的字节。当我们只需要大对象的一部分时,通常使用这个函数。

    操作内部大对象的substr函数语法如下:

    sql;">

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

    示例如下:

    sql;">

    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,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存储过程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程之家网站的支持!

    总结

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • 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 VARCH...
    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;
    展开全文
  • instr和substr存储过程,分析内部大对象的内容 instr函数与substr函数 instr函数用于从指定的位置开始,从大型对象查找第N个与模式匹配的字符串。 用于查找内部大对象的字符串的instr函数语法如下:...
  • instr和substr存储过程,分析内部大对象的内容instr函数与substr函数instr函数用于从指定的位置开始,从大型对象查找第N个与模式匹配的字符串。用于查找内部大对象的字符串的instr函数语法如下:dbms_lob.instr...
  • oracle 有表tb1存储着一些姓名,结构如下 ...求一解密储存过程 更新tb1.xm字段,显示汉字明文 如‘^1V6FV10V2CV6GV1KVKJV6GV1KV1C’更新为‘张三丰’ ‘^1V6GV1KVK2V6FV26VJKV6GV1KV1C’ 更新为’上官丰’
  • oracle存储过程中if语句

    万次阅读 2019-07-10 09:18:43
    1.完整的存储过程如下: 这个存储过程内容可能有点多,这是我平时的项目用到的存储过程,刚好里面用到了if语句,所以我就拿来了给大家看一下 create or replace procedure p_censor_stat_status_org_real(r_codes ...
  • 把xx替换成具体字符,如“深圳”,sql语句如下: 代码如下: select * from user_source t where instr(lower(t.text),’xx’)>0;select * from all_source t where t.owner<>’SYS’ and instr(t.text,’××’)>...
  • Mysql存储过程

    2018-04-26 11:44:55
    一、记录MYSQL存储过程中的关键语法 DELIMITER // 声明语句结束符,用于区分; CEATE PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程 BEGIN …. END 存储过程开始和结束符号 SET @p_in=1 变量赋值 ...
  • MySQL存储过程中的3种循环

    千次阅读 2018-01-09 19:30:00
    MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法   在MySQL存储过程的语句有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准...
  • MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法   在MySQL存储过程的语句有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准...
  • MySQL存储过程的常用函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2 [,… ]) //连接字串 INSTR (string ,substring ) //返回substring首次在string出现的位置,不存在返回0 LCASE (string2 ) //...
  • j := INSTR(in_str, in_fengefu ,i); IF j = 0 THEN j := len; str := SUBSTR(in_str,i); split_result.EXTEND; split_result(split_result.COUNT) := str; IF i >= len THEN EXIT; END IF; ELSE str := ...
  • Oracle 存储过程例子综合性例子:create or replace procedure CutPrice isvChar varchar2(50);beginselect author into vChar from articleinfo where id =1294412460658;For BSI in (select id,substr(author,...
  • 1. 存储过程简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库,用户通过指定存储过程的名字并...
  • 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库,用户通过指定存储过程的名字并给定参数(如果...
  • MySql 存储过程中要用到的运算符

    千次阅读 2017-10-09 11:59:12
    mysql存储过程学习总结-操作符 算术运算符 + 加 SET var1=2+2; 4 - 减 SET var2=3-2; 1 * 乘 SET var3=3*2; 6 / 除 SET var4=10/3; 3.3333 DIV 整除 SET var5=10 DIV 3; 3 % 取模 SET var6=10%3 ; 1 ...
  • 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库,用户通过指定存储过程的名字并给定参数(如果...
  • mysq存储过程中常用的函数,字符串类型操作,数学类,日期时间类。 mysql存储过程基本函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) ...
  • 创建存储过程存储函数,并测试 /*insert存储过程,返回数据主键*/ CREATE PROCEDURE insert_com_by_code_name (OUT com_pkid INT,IN com_code VARCHAR(20),IN com_name VARCHAR(100)) BEGI...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,223
精华内容 4,889
关键字:

存储过程中instr