CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);
CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN ty_str_split
IS
j INT := 0;
i INT := 1;
len INT := 0;
len1 INT := 0;
str VARCHAR2 (4000);
str_split ty_str_split := ty_str_split ();
BEGIN
len := LENGTH (p_str);
len1 := LENGTH (p_delimiter);
WHILE j < len
LOOP
j := INSTR (p_str, p_delimiter, i);
IF j = 0
THEN
j := len;
str := SUBSTR (p_str, i);
str_split.EXTEND;
str_split (str_split.COUNT) := str;
IF i >= len
THEN
EXIT;
END IF;
ELSE
str := SUBSTR (p_str, i, j - i);
i := j + len1;
str_split.EXTEND;
str_split (str_split.COUNT) := str;
END IF;
END LOOP;
RETURN str_split;
END fn_split;
/
测试
create or replace procedure test as
CURSOR c IS
SELECT *
FROM TABLE(CAST(fn_split('1|12|123|1234|12345| |', '|') AS
ty_str_split));
r c%ROWTYPE;
begin
OPEN c;
LOOP
FETCH c
INTO r;
EXIT WHEN c%NOTFOUND;
DBMS_OUTPUT.put_line(r.column_value);
END LOOP;
CLOSE c;
end;
分享到:
相关推荐
Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,需要创建一个新的类型来存储拆分后...
在Oracle数据库中,并没有内置的split函数来处理字符串的分割操作。然而,在实际应用中,经常需要将一个包含多个值的字符串按照指定的分隔符进行拆分,转换为表格式的数据,以便进行进一步的处理或查询。为此,可以...
以上就是关于在Oracle中实现类似Java `split`功能的两种方法的详细解释。这两种自定义函数可以帮助开发者将字符串按指定分隔符拆分成数组,从而进行后续的数据处理和分析。需要注意的是,由于PL/SQL语言的限制,这些...
### Oracle Split函数实现与应用 #### 一、Oracle Split函数简介 在Oracle数据库中,处理字符串是一项常见的需求,尤其是在需要将包含特定分隔符的字符串分割成多个独立的部分时。Oracle标准SQL并没有提供直接用于...
通过本示例,我们了解了如何使用Oracle中的Pipelined Table Function来实现一个高效的split函数。这种方法不仅可以简化字符串处理的任务,还可以显著提高处理大量数据时的性能。在实际应用中,根据不同的需求,我们...
为了创建这个函数,我们需要定义一个PL/SQL类型`type_str`来存储结果集,然后在函数中使用循环和`instr`函数来分割字符串,并检查每个工号是否存在于`test_01`表中。如果存在,就添加对应的姓名到结果集中;如果不...
Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。 源代码: CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR...
4、易于集成:函数设计简洁,易于集成到现有的Oracle数据库系统中,无需复杂的配置和改造。 5、优化查询性能:通过避免复杂的子查询和嵌套循环,我们的函数显著提升了数据处理的速度,减少了数据库资源的消耗,让您...
本文将详细介绍如何在Oracle中实现类似于.NET中的`Split`函数,并通过一个具体的SQL查询示例来展示其实现过程。 #### 一、背景介绍 在.NET框架中,`string.Split`方法被广泛用于将字符串根据指定的分隔符拆分为多...
本篇文章将深入探讨Oracle中用于拆分字符串的函数,并通过具体的示例展示它们的用法。 1. **instr() 函数** `instr()` 是Oracle中的一个内建函数,它用于查找子串在目标字符串中的位置。例如,`instr(string, ...
在Oracle数据库中,由于默认的SQL语法并不支持像JavaScript或.NET框架中那样直接对字符串进行`split`操作,所以在处理批量操作时,需要通过自定义函数来实现类似的功能。这里介绍的方法是创建两个用户自定义函数,即...
oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...
本文将详细介绍如何在 Oracle 中实现字符串分隔功能,并通过创建一个自定义的函数来实现这一目标。 #### 二、需求背景 假设我们有一个包含逗号分隔的字符串列表,需要将其拆分为单独的字符串值以便进一步处理。...
oracle自定义函数,字符串分解,可按分隔符分解字符串,分隔符可自己随便定义,非常灵活。欢迎下载。
而`split`函数虽然在提供的内容中没有具体的实现,但通常它会与`splitstr`类似,用于将字符串按照某种规则拆分成数组或集合类型,以便于进一步的处理。 在处理大数据量时,这样的自定义函数尤其有用,因为它们避免...
这个函数可以帮你实现以下内容。 1、返回汉语拼音;例如:张三 需要让函数返回 ZhangSan 或 只需要返回姓氏汉语拼音 Zhang 或 只需返回名字的汉语拼音 San 2、函数支持根据大小写要求返回大小写,例如 zhangsan / ...
"ORACLE函数大全.zip"这个压缩包文件很可能包含了对Oracle数据库系统中各种函数的详细说明,包括其属性、用法和功能。下面,我们将深入探讨一些常见的Oracle函数。 1. **转换函数**: - `TO_CHAR`:将数值或日期...
在本文中,我们将探讨如何在Oracle中添加`split`和`splitstr`这两个自定义函数,以优化批量操作的性能。 首先,我们需要创建一个名为`tabletype`的表类型,用于存储分割后的字符串元素: ```sql create or replace...
- Oracle的数学函数如`ROUND`、`TRUNC`和`MOD`,在SQL Server中也有相应的实现,但某些语法可能略有不同。 - SQL Server独有的`CHECKSUM`和`HASHBYTES`函数用于数据校验,Oracle则有`DBMS_CRYPTO`包。 3. **字符...