`

Oracle split(分隔字符串函数)

阅读更多
一 Oracle版本: 10g PLSQL: 8.0
二 具体代码如下:
1 类型
CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000)

2 函数
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;

3 具体应用
CREATE OR REPLACE procedure testsplit(objids in varchar2,message out varchar2)
as
objid varchar2(32);
begin
 for x in (select  column_value as objid from (SELECT * FROM TABLE (CAST (fn_split (objids, ',') AS ty_str_split)))t) loop
       objid := x.objid;
       --执行删除或者有关与ID相关的操作
       --delete t wher id=objid;
       --commit;
       message := message || ' ID:' || objid;    
 end loop;
EXCEPTION
  WHEN OTHERS THEN
  message :='测试split函数失败...';
end testsplit;

其它运用如下:
select t.column_value,rownum row_ from  
table(  
    cast (  
        fn_split ('1,2,3,4,5,,7,,', ',') as ty_str_split  
    )  
) t  
分享到:
评论

相关推荐

    oracle分隔字符串函数

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

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

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

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能的优点是可以灵活地处理不同的分隔符和字符串长度。同时,这个函数也可以与其他 Oracle 函数和操作符结合使用,以实现更加复杂的数据处理任务。 在实际应用中,Oracle 中实现 Split ...

    oracle_split_函数_返回数组

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

    oracle split函数

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

    oracle split 函数

    接下来,我们需要创建一个名为`split`的函数,该函数接受两个参数:待分割的字符串`p_list`和用作分隔符的字符串`p_sep`(默认值为`;`)。函数的返回类型被声明为之前定义的`type_split`类型,并且使用了管道函数(`...

    oracle字符串分割自定义函数

    oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...

    如何实现Oracle中字符串分隔.pdf

    在Oracle中,字符串分隔通常涉及到将一个长字符串按照特定的分隔符切割成多个子字符串。Oracle提供了多种函数来实现这一功能,例如`INSTR`、`SUBSTR`和`REGEXP_SUBSTR`等。下面我们将以`INSTR`和`SUBSTR`函数为例,...

    F_SPLIT-字符函数.sql

    oracle自定义函数,字符串分解,可按分隔符分解字符串,分隔符可自己随便定义,非常灵活。欢迎下载。

    Oracle,Split

    在Oracle数据库管理中,有时我们需要对字符串进行分割处理,这与.NET框架中的`Split`函数有着相似的功能。本文将详细介绍如何在Oracle中实现类似于.NET中的`Split`函数,并通过一个具体的SQL查询示例来展示其实现...

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

    - `@split nvarchar(10)`:用于分隔字符串的字符或字符组合。 - `@index int`:指定要获取的子字符串的位置(索引)。 - **返回值**:`nvarchar(1024)`,表示按照指定分隔符分割后的第n个子字符串。 #### 2. **...

    plsql分割字符串

    自定义函数`FUNCTION_SF_SPLIT_STRING`如上所示,是一个典型的用于分割字符串的函数,它接受两个参数:待分割的字符串`STRING`和用作分隔符的子字符串`SUBSTRING`,返回一个`VARCHAR2`类型的数组,其中包含了分割后...

    plsql中的字符串分割.txt

    这段描述进一步明确了具体的目标:使用PL/SQL编写一个函数,该函数能够接受一个原始字符串和一个分隔符作为输入参数,然后按照指定的分隔符将原始字符串分割成多个子字符串。这通常涉及到对字符串进行扫描、定位分隔...

    给Oracle添加split和splitstr函数的方法

    在Oracle数据库中,由于默认的SQL语法并不支持像JavaScript或.NET框架中那样直接对字符串进行`split`操作,所以在处理批量操作时,需要通过自定义函数来实现类似的功能。这里介绍的方法是创建两个用户自定义函数,即...

    一个字符串分隔多个参数存储过程调试

    2. 存储过程的编写,包括接收和处理分隔字符串的参数。 3. 数据库系统的调试方法,如设置断点、查看变量值和执行计划。 4. 如何利用数据库管理工具进行存储过程的测试和调试。 5. SQL脚本的编写和导入,用于重现问题...

    Oracle 自定义split 函数实例详解

    通过这个自定义的`fn_var_split`函数,我们可以在Oracle数据库中方便地处理字符串,将一个大字符串按照指定的分隔符拆分成多个子字符串,适用于需要对字符串进行分组或处理的场景。这种自定义函数的方法不仅可以提高...

    添加split和splitstr函数-oracle培训.docx

    总的来说,`split`和`splitstr`函数是Oracle数据库中处理字符串的强大工具,它们提供了灵活且高效的字符串处理能力,尤其适用于需要批量处理字符串数据的场景。在实际工作中,根据具体需求定制类似的函数可以显著...

    用Pipelined Table实现split函数的示例

    本文档将详细介绍如何使用Pipelined Table Function来实现一个split函数,该函数可以将输入字符串根据给定的分隔符进行分割,并返回一个包含分割后结果的表。 #### Pipelined Table Function 基础 Pipelined Table...

    oracle 函数判断字符串是否包含图片格式的实例代码

    首先,我们看到创建了一个名为`fn_split`的函数,它用于将一个字符串按照指定的分隔符进行分割,返回结果为一个表类型(`ty_str_split`)。这是Oracle中的自定义表类型,用于存储分割后的子字符串。函数接受两个参数...

Global site tag (gtag.js) - Google Analytics