`

Oracle拆分字符串函数

阅读更多
功能:根据','拆分字符串: 返回一个数组

1.首先必须要在Type包下面创建类型
CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000);

2.创建Function
CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
  RETURN str_split
  PIPELINED
AS
  v_length  NUMBER := LENGTH(p_string);
  v_start  NUMBER := 1;
  v_index  NUMBER;
BEGIN
  WHILE(v_start <= v_length)
  LOOP
    v_index := INSTR(p_string, p_delimiter, v_start);
    IF v_index = 0
    THEN
      PIPE ROW(SUBSTR(p_string, v_start));
      v_start := v_length + 1;
    ELSE
      PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
      v_start := v_index + 1;
    END IF;
  END LOOP;
  RETURN;
END splitstr;

3.测试
SELECT * FROM TABLE(splitstr('Henry,Huang',','));

4.行列转换
SELECT a.column_value name1,b.column_value name1 FROM 
(SELECT * FROM (SELECT rownum rn,t.* FROM table(splitstr('Henry,Huang',',')) t)) a, 
(SELECT * FROM (SELECT rownum rn,t.* FROM table(splitstr('Henry,Huang',',')) t)) b 
WHERE a.rn=1 and b.rn=2

分享到:
评论

相关推荐

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

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

    oracle-字符串去重函数

    传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考

    oracle分隔字符串函数

    ### Oracle 分隔字符串函数知识点详解 #### 一、Oracle 分隔字符串函数介绍 在 Oracle 数据库中处理字符串是一项常见的需求,特别是在数据清洗、格式转换等场景下。Oracle 提供了一系列强大的字符串处理函数来帮助...

    Oracle中实现Split函数功能

    函数内部使用了一个循环来拆分字符串,每次循环都会将拆分后的结果返回给调用者。 最后,我们可以使用这个函数来拆分字符串。例如,我们可以使用以下 SQL 语句来拆分一个字符串: ``` SELECT * FROM TABLE(f_split...

    oracle_split_函数_返回数组

    在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    Oracle中的`concat()`函数是最基本的字符串连接方法。它接受两个或更多个字符串作为参数,并返回它们的连接结果。例如: ```sql SELECT concat(column1, ', ', column2) AS combined_string FROM table_name; `...

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

    将字符串分割成数组: 例如将字符串“7369,7499,7521,7844"分割成 7369 7499 7521 7844 用法:可以将分割结果做为一个数组或者数据库表列来使用 select * from scott.emp where empno in (select column_value from...

    Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解

    string :需要进行正则处理的字符串 pattern :进行匹配的正则表达式 position :起始位置,从第几个字符开始正则表达式匹配(默认为1) occurrence :标识第几个匹配组,默认为1 modifier :模式(‘i’不区分大...

    oracle split函数

    在Oracle数据库中,并没有内置的split函数来处理字符串的分割操作。然而,在实际应用中,经常需要将一个包含多个值的字符串按照指定的分隔符进行拆分,转换为表格式的数据,以便进行进一步的处理或查询。为此,可以...

    plsql分割字符串

    PL/SQL(Procedural Language for Oracle)作为Oracle数据库的一种强大工具,提供了丰富的功能来处理字符串,包括分割、连接、替换等操作。本文将深入探讨如何在PL/SQL中实现字符串的分割,并通过具体代码示例进行...

    Oracle截取JSON字符串内容的方法

    本文将深入探讨如何在Oracle中截取JSON字符串内容,通过提供的函数示例进行详细解析。 首先,我们关注标题中的核心概念:“Oracle截取JSON字符串内容”。在Oracle数据库中,处理JSON数据通常涉及到JSON语法的理解和...

    截取用,分割的字符串中的第n个字符串 SQL

    - **解释**:该语句调用了`GetSplitOfIndex`函数,传入字符串`'111,b2222,323232,32d,e,323232f,g3222'`,分隔符`,`,以及索引5,即获取第五个子字符串。 - **结果**:根据函数的定义,当`n=5`时,截取的结果应为`...

    oracle 获取拼音码函数

    实现原理可能是先将汉字字符串拆分成单个字符,然后对每个字符调用Java方法获取拼音,最后将所有拼音拼接成一个字符串。 以下是一个简化的示例,展示了如何在Oracle中使用Java存根调用Java的pinyin4j库: 1. 首先...

    ORACLE函数大全.zip

    4. **字符串函数**: - `SUBSTR`:从字符串中提取子串。 - `LENGTH`:返回字符串的长度。 - `UPPER`和`LOWER`:分别将字符串转换为大写和小写。 5. **聚合函数**: - `COUNT`:计算行的数量。 - `SUM`:计算...

    灵活截取字符串

    对于截取字符串,Oracle中有两个函数substr(),instr()截取规则的字符串使用起来较为方便,...--str2 拆分字符串 --index 字符串个数索引 --查询语句:select num_char('ws++rq++sl++dl','++',4) from dual --返回结果:dl

    一个oracle根据特定字符截取数据

    这篇博客“一个oracle根据特定字符截取数据”分享了一个实用的方法,适用于那些需要从字符串字段中提取部分信息的情况。通过SQL查询,我们可以高效地完成这项任务。 在Oracle SQL中,有多个内置函数可以帮助我们...

    oracle将以逗号分隔字符串转多行

    Oracle的`REGEXP_SUBSTR`函数用于从字符串中提取符合正则表达式模式的部分。在这个例子中,`[^,]+`是一个正则表达式,表示匹配任何非逗号字符的一个或多个实例。参数`1, LEVEL`是指从字符串的第1个字符开始,按层级...

    oracle 字符串转成行

    `SUBSTR` 是Oracle中的一个字符串函数,用于提取字符串的一部分。在给定的例子中,它用于截取逗号分隔的字符串中每个单独的元素。例如: ```sql SUBSTR (T.RPT_ID, INSTR (T.RPT_ID,',',1,C.LV)+ 1, INSTR (T.RPT...

    oracle数据库自定义split函数和调用具体实现

    总的来说,通过自定义的`job_split`函数,我们不仅能够根据指定的分隔符拆分字符串,还可以根据工号查询关联表获取对应的员工姓名,如果工号不存在于关联表中,则返回原始的工号,实现了题目所要求的功能。这个函数...

Global site tag (gtag.js) - Google Analytics