--声明的长度要长点 create or replace type type_split as table of varchar2(250); --创建函数 create or replace function split ( p_list varchar2, p_sep varchar2 := ',' ) return type_split pipelined is l_idx pls_integer; v_tmp varchar2(250):=null; v_list varchar2(250) := p_list; begin loop l_idx := instr(v_list,p_sep); --dbms_output.put_line ('v_list:'||v_list); --dbms_output.put_line ('l_idx:'||l_idx); if l_idx > 0 then v_tmp:=substr(v_list,1,l_idx-1); --dbms_output.put_line ('v_tmp:'||v_tmp); if (v_tmp is not null and length(v_tmp)>0 ) then pipe row(v_tmp); end if; v_list := substr(v_list,l_idx+length(p_sep)); else --dbms_output.put_line ('v_list:'||v_list); if (v_list is not null and length(v_list)>0 ) then pipe row(v_list); end if; exit; end if; end loop; return; end split;
测试:
select * from table(split(',northsnow,塞北的雪,',','));
COLUMN_VALUE -------------------------------------------------- northsnow 塞北的雪
补充:
-----PIPELINED关键字是什么意思?
---- pipe row是什么意思?
pipelined声名此function是pipe的,如果这么声名了,就必须使用pipe row的方式把数据返回,常规函数最后的"return 变量",就变成了"return".
pipelined的function主要是为了提高效率,不用等所有的数据都处理完成了才返回客户端,它是边处理边返回.适用于大数据量的交互.
相关推荐
Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...
在Oracle数据库中,并没有内置的split函数来处理字符串的分割操作。然而,在实际应用中,经常需要将一个包含多个值的字符串按照指定的分隔符进行拆分,转换为表格式的数据,以便进行进一步的处理或查询。为此,可以...
在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...
### Oracle Split函数实现与应用 #### 一、Oracle Split函数简介 在Oracle数据库中,处理字符串是一项常见的需求,尤其是在需要将包含特定分隔符的字符串分割成多个独立的部分时。Oracle标准SQL并没有提供直接用于...
4、易于集成:函数设计简洁,易于集成到现有的Oracle数据库系统中,无需复杂的配置和改造。 5、优化查询性能:通过避免复杂的子查询和嵌套循环,我们的函数显著提升了数据处理的速度,减少了数据库资源的消耗,让您...
Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。 源代码: CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR...
通过本示例,我们了解了如何使用Oracle中的Pipelined Table Function来实现一个高效的split函数。这种方法不仅可以简化字符串处理的任务,还可以显著提高处理大量数据时的性能。在实际应用中,根据不同的需求,我们...
本文将详细介绍如何在Oracle中实现类似于.NET中的`Split`函数,并通过一个具体的SQL查询示例来展示其实现过程。 #### 一、背景介绍 在.NET框架中,`string.Split`方法被广泛用于将字符串根据指定的分隔符拆分为多...
首先,我们可以使用Oracle的内置函数`REGEXP_SUBSTR`来实现字符串的拆分。`REGEXP_SUBSTR`用于从字符串中提取符合正则表达式模式的部分。在这个例子中,正则表达式`[^/]+`表示匹配除斜杠之外的任何字符的一个或多个...
oracle自定义函数,字符串分解,可按分隔符分解字符串,分隔符可自己随便定义,非常灵活。欢迎下载。
在Oracle数据库中,由于默认的SQL语法并不支持像JavaScript或.NET框架中那样直接对字符串进行`split`操作,所以在处理批量操作时,需要通过自定义函数来实现类似的功能。这里介绍的方法是创建两个用户自定义函数,即...
"ORACLE函数大全.zip"这个压缩包文件很可能包含了对Oracle数据库系统中各种函数的详细说明,包括其属性、用法和功能。下面,我们将深入探讨一些常见的Oracle函数。 1. **转换函数**: - `TO_CHAR`:将数值或日期...
Oracle提供了一些内置的函数来帮助我们完成这个任务。本篇文章将深入探讨Oracle中用于拆分字符串的函数,并通过具体的示例展示它们的用法。 1. **instr() 函数** `instr()` 是Oracle中的一个内建函数,它用于查找...
oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...
Erp/Ehr/Crm/Clm系统的开发者很多时候会用到姓名拆分为汉语拼音的代码。 这个函数可以帮你实现以下内容。...select fn_getpy( F_namesplit('张三',1),2) as 姓,fn_getpy( F_namesplit('张三',2),2) as 名 from dual
`CAST`是SQL标准中用于类型转换的函数,适用于Oracle数据库。例如,如果你有一个NUMBER类型的字段,想将其转换为VARCHAR2类型,可以使用以下语句: ```sql SELECT CAST(column_name AS VARCHAR2(20)) FROM table_...
### Oracle 分隔字符串函数知识点详解 #### 一、Oracle 分隔字符串函数介绍 在 Oracle 数据库中处理字符串是一项常见的需求,特别是在数据清洗、格式转换等场景下。Oracle 提供了一系列强大的字符串处理函数来帮助...
oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合 如果需要在客户端实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function)。 关键字PIPELINED表明这是一个...
总的来说,`split`和`splitstr`函数是Oracle数据库中处理字符串的强大工具,它们提供了灵活且高效的字符串处理能力,尤其适用于需要批量处理字符串数据的场景。在实际工作中,根据具体需求定制类似的函数可以显著...