功能描述:用指定分隔符切割输入的字符串,返回一维数组,每个数组元素为一个子串。
源代码:
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;
/
测试:
DECLARE
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;
/
结果:
1
12
123
1234
12345
分享到:
相关推荐
在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...
Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...
在Oracle数据库中,并没有内置的split函数来处理字符串的分割操作。然而,在实际应用中,经常需要将一个包含多个值的字符串按照指定的分隔符进行拆分,转换为表格式的数据,以便进行进一步的处理或查询。为此,可以...
函数的主要任务是将`p_str`按照`p_delimiter`进行切割,并返回一个`ty_str_split`类型的数组: ```sql CREATE OR REPLACE FUNCTION fn_var_split ( p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN ty_str_...
将字符串分割成数组: 例如将字符串“7369,7499,7521,7844"分割成 7369 7499 ...select * from scott.emp where empno in (select column_value from table(my_split('7369,7499,7521,7844',',')));
本文将详细介绍如何在 Oracle 中实现字符串分隔功能,并通过创建一个自定义的函数来实现这一目标。 #### 二、需求背景 假设我们有一个包含逗号分隔的字符串列表,需要将其拆分为单独的字符串值以便进一步处理。...
oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...
自定义函数`FUNCTION_SF_SPLIT_STRING`如上所示,是一个典型的用于分割字符串的函数,它接受两个参数:待分割的字符串`STRING`和用作分隔符的子字符串`SUBSTRING`,返回一个`VARCHAR2`类型的数组,其中包含了分割后...
5. **PL/SQL中的INDEX BY TABLE**:在Oracle的PL/SQL块中,可以创建索引数组,比如`type numbers is table of number index by binary_integer;`这样的声明定义了一个可以动态扩展的数组,其中的下标由二进制整数...
在Java编程语言中,`split()`方法是String类的一个重要成员,它允许开发者根据指定的分隔符将字符串拆分为一个字符串数组。然而,在Oracle的PL/SQL环境中,并没有直接对应的函数来完成相同的功能。因此,当需要在PL/...
Oracle 数据库是一个强大的关系型数据库管理系统,它提供了丰富的内置函数,便于用户进行数据处理和操作。以下是一些在 Oracle 数据库中常用的字符串处理函数的详细解释: 1. **AddSlashes()**: 这个函数用于在字符...
**命令:** `select text from all_source where owner = user and name = 'SF_SPLIT_STRING';` 此命令用于查看特定函数的源代码,对于开发和调试非常重要。 #### 二十七、查看表中的列 **命令:** `select column_...
4.4.12 split函数 4. 4.13 sort函数 4.4.14 reverse函数 4.4.15 unshift函数 4.5 散列(关联数组)函数 4.5.1 keys函数 4.5.2 values函数 4.5.3 each函数 4.5.4 delete函数 4.5.5 exists...
- **步骤2**:创建函数 `SPLIT`,该函数接受两个参数 `P_LIST`(待分割的字符串)和 `P_SEP`(分隔符,默认为逗号),并返回类型 `TYPE_SPLIT` 的数组。 - **函数逻辑**:通过循环遍历字符串,查找分隔符的位置,...
通过`INSTR`和`SUBSTR`函数组合,函数能够有效地将原始字符串分割成多个子字符串,并将这些子字符串存储在返回的游标中。 通过以上详细的解释和示例代码,我们已经全面了解了如何在PL/SQL中实现字符串分割的功能。...
字符串处理在JDK7中得到了加强,如`String.join()`方法用于方便地连接字符串数组,`String.split()`方法的正则表达式改进,以及`String.contains()`、`String.startsWith()`和`String.endsWith()`等方法的优化。...
13.3.2 ORACLE 207 13.3.3 SYBASE 207 13.3.4 DB2 207 13.3.5 SQL Server 207 13.4 SQL语言简介 207 13.5 常见的数据库设计问题 208 13.6 关系型数据库的设计原则 209 13.6.1 第一范式(1NF) 209 13.6.2 第二范式...
- **处理响应**:当服务器响应到达时,通过回调函数处理返回的数据。 - **更新页面**:根据处理后的数据更新页面的部分内容。 #### 13. AJAX与ExtJS的关系 ExtJS是一个用于构建复杂Web应用程序的JavaScript库。它...
传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP...