`
zhaoshijie
  • 浏览: 2242867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle实现类split函数的方

 
阅读更多
关键字:Oracle实现类split函数的方
项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。

CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100);

create or replace function f_split_100(p_str_all in varchar2,
                                            p_str_gap in varchar2)
  return t_split_100 is
  v_ntb_allstring t_split_100;

  str_unit varchar2(100);
  str_char varchar2(100);

  i_str_length number;
  i_str_index  number;

begin
  v_ntb_allstring := t_split_100();

  i_str_length := length(p_str_all);

  i_str_index := 1;

  while (i_str_index <= i_str_length) loop
    str_char := substr(p_str_all, i_str_index, 1);

    if (str_char = p_str_gap) then

      if (str_unit is not null) then
        v_ntb_allstring.extend(1);
        v_ntb_allstring(v_ntb_allstring.count) := str_unit;
        str_unit := null;
      end if;

    else
      str_unit := str_unit || str_char;

      if (i_str_index = i_str_length) then
        v_ntb_allstring.extend(1);
        v_ntb_allstring(v_ntb_allstring.count) := str_unit;
        str_unit := '';
      end if;

    end if;

    i_str_index := i_str_index + 1;
  end loop;

  return(v_ntb_allstring);
end;
使用方法f_split_100(‘a|b|c|d’, ‘|’),返回的是Collection。
查看结果的方法 select * from table(f_split_100(‘a|b|c|d’, ‘|’));
Collection使用方法如下

EXISTS 该函数返回集合中第一个元素的索引,如果集合为空,返回NULL Collection.EXISTS(index
COUNT Collection.COUNT Collection.COUNT
DELETE 该过程从嵌套表中删除一个或多个或合部元素 Table_name.DELETE 删除所有元素
Table_name.delete(index)删除指定索引的记录
Table_name.delete(start_index,end_index)删除区间内元素
FIRST 返回集合第一个元素索引,如果集合为空,返回NULL Collection.FIRST
LAST 返回集合中最后一个元素索引,如果集合为空,返回NULL Collection. LAST
NEXT 返回集合中最后一个元素索引,如果集合为空,返回NULL Collection. NEXT
PRIOR Collection. PRIOR Collection. PRIOR
LIMIT 返回varray中创建元素的最大个数 Collection. LIMIT
EXTENDS 该过程在集合的末尾添加新的元素 Collection.EXTEND添加一个NULL元素;Collection.extends(n)添加N个NULL元素,Collection.extend(n,index)添加由index指定位置上元素的n个副表
TRIM Collection.TRIM 删除最后一个元素
Collection.TRIM(n)删除最后N个元素 Collection.TRIM 删除最后一个元素
Collection.TRIM(n)删除最后N个元素
分享到:
评论

相关推荐

    Oracle中实现Split函数功能

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

    oracle_split_函数_返回数组

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

    oracle split函数

    oracle split函数,内有两种实现方式,可直接返回多行记录如: 传入参数: SELECT * FROM TABLE(mm_split('中国,be,c,de',',')); 返回四条记录: 中国 be c de

    Oracle 自定义split 函数实例详解

    Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。 源代码: CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR...

    用Pipelined Table实现split函数的示例

    用Pipelined Table实现split函数的示例

    oracle 函数大全oracle 函数大全

    oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全

    Oracle中实现datadiff函数

    首先在oracle中没有datediff()函数 可以用这个方法在oracle中实现该函数的功能。

    oracle split 函数

    实现oracle中 分割字符串的功能,返回一个表。 比如:abc;cde;dfd;133 select * from table(split('abc;cde;dfd;133')) 可以返回 abc cde dfd 133

    oracle函数大全 oracle函数大全

    oracle函数大全 oracle函数大全 oracle函数大全

    oracle数据库自定义split函数和调用具体实现

    Oracle 自定义函数需求有个字段,工号JOB_NUMBER ='10202804/10133066/10131810',数据库里是编号,所有想写个函数,将JOB_NUMBER 传递进去,然后返回 '张三/李四/王五',如果王五不存在则返回昵称拼接code '张三/...

    ORACLE CRC32函数

    ORACLE crc3函数,将字符类型转换成唯一的数字类型,例如CSDN,经过crc32函数转换后,得到的值为-1016176976

    oracle函数分类.rar

    数值型函数、字符型函数、日期函数、转换函数、聚组函数、分析函数、其它函数

    ORACLE函数介绍 ORACLE函数介绍

    ORACLE函数介绍 ORACLE函数介绍 ORACLE函数介绍 ORACLE函数介绍 ORACLE函数介绍 ORACLE函数介绍

    oracle 函数大全 参考函数 手册 速查 chm格式

    oracle 函数大全 参考函数 手册 速查 chm格式。。。

    简单的oracle 时间比较函数

    简单的oracle 时间比较函数,自己在网上找到并加以整理出来。

    ORACLE函数.pdfORACLE函数.pdf

    ORACLE函数.pdfORACLE函数ORACLE函数.pdf

    ORACLE函数介绍 全系列中文

    oracle函数介绍 1 著名函数之单值函数 pdf oracle函数介绍 2 非著名函数之单值函数 pdf oracle函数介绍 3 著名函数之聚合函数 pdf oracle函数介绍 4 非著名函数之聚合函数 pdf oracle函数介绍 5 分析函数简述 ...

    Oracle,Split

    Oracle,类似.Net中的Split函数 Oracle,类似.Net中的Split函数

    oracle函数分类大全

    新手必备函数大全文档,函数不会用时看一看就清楚了,不知道用什么函数时看一看就清楚了

Global site tag (gtag.js) - Google Analytics