`

Oracle拆分字符串函数

 
阅读更多
create or replace type string_table is table of varchar2(2000);
create or replace function splitter(p_string in varchar2,p_delimiter in varchar2)
  return string_table pipelined
as
  --功能:用于拆分字符串
  --用法:select * from table(splitter('wallimn,http://wallimn.iteye.com',','));
  v_length number := length(p_string);
  v_start number:=1;
  v_index number;
begin
  while(v_start<=v_length) loop
    v_index := instr(p_string,p_delimiter,v_start);
    if v_index=0 then
      pipe row(trim(substr(p_string,v_start)));
      v_start := v_length+1;
    else
      pipe row(trim(substr(p_string,v_start,v_index-v_start)));
      v_start:=v_index+1;
    end if;
  end loop;
  
end splitter;


参考:http://www.cnblogs.com/yudy/archive/2012/07/18/2597874.html
分享到:
评论

相关推荐

    Oracle拆分字符串,字符串分割的函数

    Oracle拆分字符串,字符串分割的函数,将返回一个表格,如果有需要的可以下载去看看。

    oracle-字符串去重函数

    传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考

    oracle分隔字符串函数

    oracle分隔字符串,分隔一个字符串成多个字符串,分隔条件按照用户自定义

    oracle_split_函数_返回数组

    最近在oracle 中用到拆分字符串返回数组,一直头痛,因为在 oracle 中没有类似java中有split 函数 ,所以要自己写。好不容搜到一个。那网上是到处都是这个代码。怎么找都是这个方法,我就用了。这个方法如下: ...

    字符串分割成数组函数(plsql function)

    将字符串分割成数组: 例如将字符串“7369,7499,7521,7844"分割成 7369 7499 7521 7844 用法:可以将分割结果做为一个数组或者数据库表列来使用 select * from scott.emp where empno in (select column_value from...

    Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解

    string :需要进行正则处理的字符串 pattern :进行匹配的正则表达式 position :起始位置,从第几个字符开始正则表达式匹配(默认为1) occurrence :标识第几个匹配组,默认为1 modifier :模式(‘i’不区分大...

    Oracle中实现Split函数功能

    本文档详细介绍了如何在Oracle数据库中实现像C#等其它编程语言中Split函数来拆分字符的功能。例子简单易懂,并附有详细的实现过程。

    Oracle截取JSON字符串内容的方法

    主要介绍了Oracle截取JSON字符串内容 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    灵活截取字符串

    对于截取字符串,Oracle中有两个函数substr(),instr()截取规则的字符串使用起来较为方便,...--str2 拆分字符串 --index 字符串个数索引 --查询语句:select num_char('ws++rq++sl++dl','++',4) from dual --返回结果:dl

    oracle将以逗号分隔字符串转多行

    不做详解,直接上图。 SELECT T.NAME, T.TESTSTR FROM TEST2 T;   SELECT DISTINCT T.NAME, REPLACE(REGEXP_SUBSTR(T.TESTSTR, '[^,]+', 1, LEVEL), ',', ' ') TESTSTR FROM TEST2 T WHERE 1 = 1 ...

    Oracle数据行拆分多行方法示例

    单行拆分 如果表数据只有一行,则可以直接在原表上直接使用connect by+正则的方法,比如: select regexp_substr('444.555.666', '[^.]+', 1, level) col from dual connect by level &lt;= regexp_count('444.555...

    Oracle中instr和substr存储过程详解

    instr函数用于从指定的位置开始,从大型对象中查找第N个与模式匹配的字符串。 用于查找内部大对象中的字符串的instr函数语法如下: dbms_lob.instr( lob_loc in blob, pattern in raw, offset in integer := 1; nth...

    给Oracle添加split和splitstr函数的方法

    最近项目中有很多需要做批量操作的需求,客户端把一组逗号分隔的ID字符串传给数据库,存储过程就需要把它们分割,然后逐个处理。 以往的处理方式有如下几种: 1、在存储过程内写循环,逐个分析字符串中的ID,然后...

    Oracle字段根据逗号分割查询数据的方法

    项目需求是这样的表里的某个字段存储的值是以逗号分隔开来的,要求根据分隔的每一个值都能查出来数据,但是不能使用like查询。这篇文章主要介绍了Oracle字段根据逗号分割查询数据,需要的朋友可以参考下

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    找了网上很多资料,都没有详细的做法有的还很复杂,自己写了个分割函数,通过直接查询就能分割多行,很方便。

    oracle统计时间段内每一天的数据(推荐)

    下面给大家介绍oracle统计时间段内每一天的数据,具体sql语句如下所示: 1. 生成1000个随机数 ...2. 例如:拆分以逗号隔开的 A,B,C,D 字符串 SELECT REGEXP_SUBSTR('A,B,C,D', '[^,]+', 1, ROWNUM) FROM DUAL CONN

    Oracle 正则表达式实例详解

    Oracle 正则表达式实例详解 FORM开发中的按行拆分需求:拆分后的行要有规律,并按前后层次排序  需求分析如下:  现有行: 2 , 2.1 , 2.2 , 2.3 3  2.1.1, 2.1.2 , 2.1.3 , 2.2.1 , 2.1.1.1, ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

Global site tag (gtag.js) - Google Analytics