CREATE OR REPLACE FUNCTION str2list (
p_string IN VARCHAR2,
p_string2 IN VARCHAR2 DEFAULT NULL,
p_sep IN VARCHAR2 DEFAULT ','
)
RETURN tabletype
AS
/******************************************************************************
AUTHOR:
PURPOSE: 用于将一字符串转换成一个table
NOTES: 可以通过传入的顺序进行排序 调用举例:select a.* from table (str2List(replace('''a'',''b'',''b'',7782,7788,7369,7499,7521,7566,7654,7698','''','')) ) a
TABLE REFERENCES:
VIEW REFERENCES:
******************************************************************************/
v_str LONG DEFAULT p_string || p_sep;
v_str2 LONG DEFAULT p_string2 || p_sep;
v_n NUMBER;
v_n2 NUMBER;
v_data tabletype := tabletype ();
BEGIN
LOOP
v_n := TO_NUMBER (INSTR (v_str, p_sep));
v_n2 := TO_NUMBER (INSTR (v_str2, p_sep));
EXIT WHEN (NVL (v_n, 0) = 0);
v_data.EXTEND;
v_data (v_data.COUNT) :=
rectype (v_data.COUNT,
LTRIM (RTRIM (SUBSTR (v_str, 1, v_n - 1))),
LTRIM (RTRIM (SUBSTR (v_str2, 1, v_n2 - 1)))
);
v_str := SUBSTR (v_str, v_n + 1);
v_str2 := SUBSTR (v_str2, v_n2 + 1);
END LOOP;
RETURN v_data;
END;
方式二:
select regexp_substr('A,B,C,D,E,F,G', '[^,]+', 1, level)
from dual
connect by level <= length(regexp_replace('A,B,C,D,E,F,G', '[^,]*')) + 1;
分享到:
相关推荐
首先,Oracle提供了一个内置函数`TO_NUMBER()`,它专门用于将字符串转换为数字。`TO_NUMBER(string, format_mask)`函数接收两个参数:要转换的字符串和可选的格式掩码。格式掩码允许我们指定字符串中数字的格式,...
本篇文章将深入探讨Oracle中用于拆分字符串的函数,并通过具体的示例展示它们的用法。 1. **instr() 函数** `instr()` 是Oracle中的一个内建函数,它用于查找子串在目标字符串中的位置。例如,`instr(string, ...
在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...
LOWER函数用于将字符串全部转换为小写字母。例如: ``` SQL> select lower('AaBbCcDd') AABBCCDD from dual; AABBCCDD -------- aabbccdd ``` 所有大写字母都被转换成了小写字母。 #### 8. UPPER UPPER函数用于...
函数内部使用了一个循环来拆分字符串,每次循环都会将拆分后的结果返回给调用者。 最后,我们可以使用这个函数来拆分字符串。例如,我们可以使用以下 SQL 语句来拆分一个字符串: ``` SELECT * FROM TABLE(f_split...
例如,有一个字段存储了这样的字符串:“apple,banana,orange,grape”,我们需要将这个字符串拆分成四个独立的字符串:“apple”、“banana”、“orange”和“grape”。这种情况下,就需要使用到字符串分隔的功能。 ...
本文将详细介绍两种在Oracle中实现字符串分割的方法:第一种是通过创建类型和管道函数的方式;第二种则是通过循环和子字符串处理实现的。 #### 二、第一种实现方式:创建类型和管道函数 ##### 1. 创建类型 `TY_STR...
在实际应用中,我们可能需要将JSON字符串存储在`CLOB`或`BLOB`类型的列中,然后利用Oracle的JSON函数进行读取和操作。例如,`JSON_OBJECT_T`和`JSON_ARRAY_T`是两个实用的类型,它们分别代表JSON对象和数组,可以...
在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...
INITCAP 函数返回字符串,并将字符串的第一个字母变为大写。该函数的语法为 `INITCAP(string)`,其中 `string` 是要处理的字符串。例如,`SELECT INITCAP('smith') FROM DUAL;` 将返回字符串“Smith”。 5. INSTR ...
- **功能**:将字符串转换为小写。 - **语法**: - `LOWER(str_expr)` - **示例**: - `SELECT LOWER('AaBbCcDd') AS "AaBbCcDd" FROM DUAL;` - 输出结果: - AaBbCcDd - --- - aabbccdd ##### 8. UPPER - **...
SQL 字符串分割函数实现多行数据转换 ...通过这个示例,我们可以看到,使用 `StringSplit` 函数可以轻松地将一个字段中的特殊字符分割的字符串转换成多行数据。这个函数可以广泛应用于各种数据库应用场景中。
4. INITCAP 函数:将字符串中的每个单词首字母转换为大写,其余字母转换为小写。如 INITCAP('smith') 返回 'Smith'。 5. INSTR 函数:在字符串中查找指定子串的起始位置。INSTR('oracle traning', 'ra', 1, 2) 返回...
Oracle字符函数是数据库管理系统Oracle中处理字符串数据的重要工具,它们用于创建、操作和转换字符串。在Oracle中,字符串函数广泛应用于数据查询、分析和报告。以下是一些常用的Oracle字符串函数的详细说明: 1. ...
LOWER 函数将字符串转换为小写。语法为:LOWER(字符串)。示例代码如下: ```sql SELECT LOWER('AaBbCcDd') FROM dual; ``` 结果: aabbccdd 8. UPPER 函数 UPPER 函数将字符串转换为大写。语法为:UPPER(字符串...
例如,使用 REGEXP_SUBSTR 函数可以将一个字符串转换成多个列。 6. 字符串转换成多行 字符串转换成多行是指将一个字符串转换成多行。例如,使用 REGEXP_SUBSTR 函数可以将一个字符串转换成多行。 Oracle 行列转换...
- TO_NUMBER:将字符串转换为数值。 二、Oracle API与函数使用 Oracle API(应用程序编程接口)提供了与数据库交互的接口,包括PL/SQL过程、函数和包。例如,DBMS_OUTPUT包用于在PL/SQL程序中输出信息,DBMS_...
而UPPER函数将字符串转换为大写,如`UPPER('AaBbCcDd')`返回'AABBCCDD'。 8. RPAD和LPAD函数: RPAD在字符串右侧填充指定字符,直到达到指定长度,而LPAD在左侧填充。例如,`RPAD('gao', 10, '*')`返回'gao*****'...