`
sea0108
  • 浏览: 54750 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自定义oracle字符串分割函数split

阅读更多
(1)定义split_type类型:
CREATE OR REPLACE TYPE split_type IS TABLE OF VARCHAR2 (4000)
/


(2)定义split函数:
CREATE OR REPLACE FUNCTION ETL.split (
    p_str       IN VARCHAR2, 
    p_delimiter IN VARCHAR2 default(',') --分隔符,默认逗号
)
    RETURN split_type
IS
    j INT := 0;
    i INT := 1;
    len INT := 0;
    len1 INT := 0;
    str VARCHAR2 (4000);
    my_split split_type := split_type ();
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);
             my_split.EXTEND;
             my_split (my_split.COUNT) := str;

            IF i >= len
            THEN
                EXIT;
            END IF;
        ELSE
            str := SUBSTR (p_str, i, j - i);
            i := j + len1;
            my_split.EXTEND;
            my_split (my_split.COUNT) := str;
        END IF;
    END LOOP;

    RETURN my_split;
END split;
/


(3)测试split函数:
select * from table (split('1,2,3,4',','))
分享到:
评论

相关推荐

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

    虽然这不是直接的字符串分割函数,但可以配合其他函数一起使用,实现字符串的拆分。 2. **SUBSTR() 函数** `substr()` 用于从字符串中提取指定长度的部分。例如,`substr(string, start_position, length)` 返回从...

    oracle字符串分割自定义函数

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

    oracle split函数

    本文将详细介绍两种在Oracle中实现字符串分割的方法:第一种是通过创建类型和管道函数的方式;第二种则是通过循环和子字符串处理实现的。 #### 二、第一种实现方式:创建类型和管道函数 ##### 1. 创建类型 `TY_STR...

    oracle_split_函数_返回数组

    这两种方法在处理不同情况下的字符串分割时可能有不同的效果。例如,如果字符串中的分隔符是多字符的,或者字符串包含连续的分隔符,那么可能需要对这些情况进行特殊处理,以确保正确地拆分字符串。在实际使用时,应...

    oracle split 函数

    本文介绍了如何在Oracle中实现一个自定义的`split`函数来处理字符串分割的需求。通过定义集合类型和使用管道函数,我们可以方便地将分割后的字符串以表的形式返回,从而更加灵活地处理和查询数据。这种方法不仅可以...

    oracle分隔字符串函数

    本文详细介绍了如何在 Oracle 数据库中实现字符串分隔的功能,通过自定义函数 `splitstr` 实现了根据用户定义的分隔符来分割字符串的目标。这种方法不仅灵活,而且易于维护和扩展,非常适合于处理各种复杂的字符串...

    plsql分割字符串

    通过对`FUNCTION_SF_SPLIT_STRING`的详细分析,我们可以看到,在PL/SQL中实现字符串分割不仅需要理解基本的字符串操作函数,还需要具备良好的逻辑思维和控制结构设计能力。掌握这种方法不仅可以提高数据库应用程序的...

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

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

    Oracle 自定义split 函数实例详解

    在Oracle数据库中,系统并未内置一个直接用于字符串分割的`SPLIT`函数,但我们可以根据需求自定义一个。本文将详细介绍如何在Oracle中创建一个自定义的`SPLIT`函数,以及如何使用这个函数进行字符串处理。 首先,...

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

    在Oracle数据库环境中,有时我们需要对字符串进行处理,例如将一个包含多个值的字符串分割成多个单独的元素。在描述中提到的传统方法可能涉及到创建临时表,这种方法在处理大量数据时效率较低。为了解决这个问题,...

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

    这里介绍的方法是创建两个用户自定义函数,即`split`和`splitstr`,用于将逗号分隔的ID字符串分割成多个元素,便于存储过程中的批量处理。 首先,创建一个名为`tabletype`的表类型,它是用来存储函数返回的多个字符...

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

    接下来,我们创建`split`函数,它接受一个CLOB类型的字符串`p_list`和一个分隔符`p_sep`(默认为逗号),返回一个由分割字符串组成的`tabletype`类型的管道流: ```sql CREATE OR REPLACE FUNCTION split (p_list ...

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

    这是Oracle中的自定义表类型,用于存储分割后的子字符串。函数接受两个参数:`p_str`是要分割的字符串,`p_delimiter`是作为分隔符的字符。通过`INSTR`函数找到分隔符的位置,然后使用`SUBSTR`截取子字符串,并将...

    PL_SQL文件

    字符串分割函数 - **需求背景**:处理带有分隔符的字符串是常见的数据处理任务之一。例如,给定一个由逗号分隔的字符串 `'123,zhonggou,mama,'`,要求将其拆分为独立的字段,并且最后一个字段后面保留一个逗号。 #...

    PL/SQL实现JAVA中的split()方法的例子

    因此,当需要在PL/SQL中进行字符串分割时,我们需要自定义逻辑来模拟这个功能。 在PL/SQL中实现类似于Java `split()`的方法,我们可以参考上述例子。首先,定义一个变量`v_str`存储待分割的字符串,然后创建一个...

    php网络开发完全手册

    7.5.7 用正则表达式进行字符串分割 7.5.7 ——preg_split 115 7.6 字符操作的注意事项 117 7.7 小结 118 第8章 数组操作与数据结构算法 119 8.1 一维数组与多维数组 119 8.1.1 一维数组简介 119 8.1.2 多维数组简介 ...

    SqlServer生成连续数字根据指定的数字操作

    自SQL Server 2016开始,引入了`STRING_SPLIT`函数,它将字符串分割成行。我们可以结合`row_number()`窗口函数生成连续数字。然而,这种方法仅适用于SQL Server 2016及更高版本。示例如下: ```sql SELECT row_...

    C#编程经验技巧宝典

    72 &lt;br&gt;0102 将字符串首字母转换大写 72 &lt;br&gt;0103 如何进行字节数组和字符串的相互转换 72 &lt;br&gt;0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 &lt;br&gt;4.2 获取字符串信息 73 ...

    java面试题

    - 将字符串转换为Date对象进行比较。 - 示例代码: ```javascript function isValidDate(dateStr) { const dateRegex = /^\d{4}-\d{2}-\d{2}$/; if (!dateRegex.test(dateStr)) return false; const [year, ...

Global site tag (gtag.js) - Google Analytics