`

oracle中实现split函数(管道函数实现),另附table函数用法。

阅读更多

至于管道函数的用法在上一遍文章已经介绍,在此不再细说.直接看函数.

1.创建type对象.

create or replace type type_split as table of varchar2(4000); 

2.创建split函数

create or replace function test_split(p_list VARCHAR2, p_sep VARCHAR2) return type_split 
  PIPELINED IS
  l_idx  PLS_INTEGER;
  v_list VARCHAR2(32767) := p_list;
begin
  LOOP
    l_idx := instr(v_list, p_sep);
    IF l_idx > 0 THEN
      PIPE ROW(substr(v_list, 1, l_idx - 1));
      v_list := substr(v_list, l_idx + length(p_sep));
    ELSE
      PIPE ROW(v_list);
      EXIT;
    END IF;
  END LOOP;
  RETURN;
end test_split;

3.执行该函数(table涵数用法)

SELECT * FROM table(test_split('aaa,bbb,ccc',',')) ;

4.输出结果

    COLUMN_VALUE
1	     aaa
2	     bbb
3           ccc

 

5.总结:此函数可以在存储过程(procedure)中使用,当遇到需要用逗号进行分隔的字符串,可以用这种方法就行查询,之后用游标(cursor)来分别提取每个字符串.

 

1
3
分享到:
评论

相关推荐

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,需要创建一个新的类型来存储拆分后...

    oracle split函数

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

    用Pipelined Table实现split函数的示例

    用Pipelined Table实现split函数的示例

    Oracle 自定义split 函数实例详解

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

    oracle split 函数

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

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

    本篇文章将深入探讨Oracle中用于拆分字符串的函数,并通过具体的示例展示它们的用法。 1. **instr() 函数** `instr()` 是Oracle中的一个内建函数,它用于查找子串在目标字符串中的位置。例如,`instr(string, ...

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

    在Oracle数据库中,由于默认的SQL语法并不支持像JavaScript或.NET框架中那样直接对字符串进行`split`操作,所以在处理批量操作时,需要通过自定义函数来实现类似的功能。这里介绍的方法是创建两个用户自定义函数,即...

    oracle字符串分割自定义函数

    oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...

    详解oracle管道函数的用法(一行拆为多行)

    如果需要在客户端实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function)。 关键字PIPELINED表明这是一个oracle管道函数,oracle管道函数的返回值类型必须为集合 --创建一个集合...

    异种数据库函数和标准SQL语法比较Oracle与SqlServer.rar

    - Oracle的数学函数如`ROUND`、`TRUNC`和`MOD`,在SQL Server中也有相应的实现,但某些语法可能略有不同。 - SQL Server独有的`CHECKSUM`和`HASHBYTES`函数用于数据校验,Oracle则有`DBMS_CRYPTO`包。 3. **字符...

    如何实现Oracle中字符串分隔.pdf

    在Oracle数据库中,字符串处理是常见的操作之一,特别是在数据...总的来说,Oracle中实现字符串分隔的方法多样,可以根据具体需求选择合适的方法。对于大量或复杂的数据处理,封装好的包可以提高代码的可读性和维护性。

    oracle字段类型转换的处理

    在实际应用中,有时我们需要将一个字段的值从一种类型转换为另一种类型,这可以通过SQL查询语句中的`CAST`或`TO_CHAR`、`TO_DATE`等函数实现。 1. `CAST` 函数 `CAST`是SQL标准中用于类型转换的函数,适用于Oracle...

    oracle数据行列转换

    3. 列转行:Oracle 10g中,我们通常使用LISTAGG函数(在11g中引入,但在10g可以通过其他方式模拟)或者CONNECT BY语句来实现列转行。例如,如果我们有一个包含多个产品分类的列,希望将其拆分为多行,可以使用以下...

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

    将字符串分割成数组: 例如将字符串“7369,7499,7521,7844"分割成 7369 7499 ...select * from scott.emp where empno in (select column_value from table(my_split('7369,7499,7521,7844',',')));

    jsp分页 oracle 插件demo

    在Oracle数据库中,我们可以使用SQL查询的`ROWNUM`关键字配合`WHERE`子句来实现分页。例如,如果每页显示10条记录,我们可以通过以下SQL获取第2页的数据: ```sql SELECT * FROM ( SELECT ROW_NUMBER() OVER ...

    Oracle行转列

    可以使用REGEXP_SPLIT函数来实现字符串转换成多列,例如: ```sql SELECT REGEXP_SPLIT('v11,v21,v31', ',')[1] AS c1, REGEXP_SPLIT('v11,v21,v31', ',')[2] AS c2, REGEXP_SPLIT('v11,v21,v31', ',')[3] AS c3; ...

    PL/SQL实现JAVA中的split()方法的例子

    在PL/SQL中实现类似于Java `split()`的方法,我们可以参考上述例子。首先,定义一个变量`v_str`存储待分割的字符串,然后创建一个自定义类型的表`str_table_type`来保存分割后的字符串数组。接着,初始化一个空的`...

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

    SQL 字符串分割函数实现多行数据转换 ...通过这个示例,我们可以看到,使用 `StringSplit` 函数可以轻松地将一个字段中的特殊字符分割的字符串转换成多行数据。这个函数可以广泛应用于各种数据库应用场景中。

Global site tag (gtag.js) - Google Analytics