`

在pl/sql中写一个类似Java中的split函数

阅读更多
据我了解,PL/SQL 中没有split函数,需要自己写。
create or replace type type_split as table of varchar2(50);  --创建一个  type  ,如果为了使split函数具有通用性,请将其size 设大些。


--创建function
create or replace function split
(
    p_list varchar2,
    p_sep varchar2 := ','
)  return type_split pipelined
is
    l_idx   pls_integer;
    v_list  varchar2(50) := p_list;
begin
    loop
       l_idx := instr(v_list,p_sep);
      if l_idx > 0 then
          pipe row(substr(v_list,1,l_idx-1));
           v_list := substr(v_list,l_idx+length(p_sep));
      else
          pipe row(v_list);
          exit;
      end if;
   end loop;
   return;
end split;


SQL> select * from table(split('northsnow,塞北的雪',','));

COLUMN_VALUE
--------------------------------------------------
northsnow
塞北的雪

SQL>


---------------------------------------------------------------------------------------------------------------

PL/SQL中定义数组

declare
type tab_numbers is table of number; -- 定义数组类型
lt tab_numbers; -- 定义一个未初始化的数组
begin
lt := tab_numbers(); -- 初始化一个空数组,无任何元素
lt.extend; -- 扩展数组,扩展一个元素
lt(1) := 100; -- 数组下标从1开始
lt.extend(3); -- -- 扩展数组,扩展3个元素
lt(2) := 1002;
lt(3) := 1003;
lt(4) := 1004;
-- lt(5) := 0; 这里将不允许,因为不存在此下标之元素
for i in 1..lt.count loop -- lt.count 取得数组元素个数
dbms_output.put_line(lt(i));
end loop;
end;
/


转载:http://hi.baidu.com/%BA%C3%D1%F2%BE%CD%BA%C3%D1%F9/blog/item/a42c40f3306939cf0a46e0af.html
分享到:
评论

相关推荐

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

    在Java编程语言中,`split()`方法是String类的一个重要成员,它允许开发者根据指定的分隔符将字符串拆分为一个字符串数组。然而,在Oracle的PL/SQL环境中,并没有直接对应的函数来完成相同的功能。因此,当需要在PL/...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,需要创建一个新的类型来存储拆分后...

    oracle_split_函数_返回数组

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

    plsql分割字符串

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

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

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

    PL_SQL文件

    例如,在 SQL Server 中可以使用类似的函数来实现字符串分割功能。 - **示例代码**: ```sql CREATE FUNCTION [dbo].[fn_split] (@InputString NVARCHAR(MAX), @Seprator NVARCHAR(10)) RETURNS @tempTable TABLE...

    plsql中的字符串分割.txt

    本文将详细介绍如何在PL/SQL中实现一个字符串分割的功能,并通过一个具体的示例来展示其实现过程。 ### 标题解释:“plsql中的字符串分割” 这个标题明确指出文章将讨论的主题是“PL/SQL”中的字符串分割技术。PL/...

    ORACLE数据库期末考试题目及答案.pdf

    14. PL/SQL异常处理:在PL/SQL中,除以零会导致ZERO_DIVIDE异常。 15. 游标操作:更新游标结果集中的当前行使用`WHERE CURRENT OF`子句;隐式游标用于处理单行查询结果。 16. 子程序与包:包规范(Package ...

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

    为了创建这个函数,我们需要定义一个PL/SQL类型`type_str`来存储结果集,然后在函数中使用循环和`instr`函数来分割字符串,并检查每个工号是否存在于`test_01`表中。如果存在,就添加对应的姓名到结果集中;如果不...

    ORACLE数据库期末考试题目及答案借鉴.pdf

    拆分分区(SPLIT PARTITION)将一个分区变为两个或多个分区。 11. 分区类型:列表分区允许根据列值的列表进行分区,范围分区基于列值范围,散列分区根据散列函数分布行,复合分区结合多种分区策略。 12. 序列访问...

    异种数据库函数和标准SQL语法比较Oracle与SqlServer.rar

    在IT行业中,数据库管理系统(DBMS)是至关重要的工具,其中Oracle和SQL Server是两个广泛使用的主流系统。本文将深入探讨这两个数据库系统中异种函数和标准SQL语法的差异,帮助用户更好地理解和应用它们。 首先,...

    Oracle 自定义split 函数实例详解

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

    (完整word版)ORACLE数据库期末考试题目及答案.docx

    - **DBMS_OUTPUT 包**:这是一个常用的 Oracle 内置程序包,用于在 PL/SQL 块和存储过程中输出调试信息。这对于调试和诊断问题非常有用。 #### 24. 内置程序包所属用户 - **SYS 用户**:Oracle 提供了大量的内置...

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

    `instr()` 是Oracle中的一个内建函数,它用于查找子串在目标字符串中的位置。例如,`instr(string, substring)` 返回`substring`在`string`中第一次出现的位置。虽然这不是直接的字符串分割函数,但可以配合其他...

    Oracle解析复杂json的方法实例详解

     1、在PL/SQL中写json串,无需声明json对象,只需直接拼接成格式正确的json字符串即可,因此数据库对象间json串的传递完全可以用varchar2或clob来代替。  2、结构复杂的json串节点元素值基本上可

    oracle分隔字符串函数

    本文将详细介绍如何在 Oracle 中实现字符串分隔功能,并通过创建一个自定义的函数来实现这一目标。 #### 二、需求背景 假设我们有一个包含逗号分隔的字符串列表,需要将其拆分为单独的字符串值以便进一步处理。...

    oracle学习笔记

    5. **PL/SQL中的INDEX BY TABLE**:在Oracle的PL/SQL块中,可以创建索引数组,比如`type numbers is table of number index by binary_integer;`这样的声明定义了一个可以动态扩展的数组,其中的下标由二进制整数...

    mysql split函数用逗号分隔的实现

    这里我们将详细讲解如何在MySQL中实现一个用逗号分隔的`split`函数。 首先,我们创建一个存储过程`splitString`,这个过程接受两个参数:要分割的字符串`f_string`和作为分隔符的字符`f_delimiter`。存储过程的定义...

    PolarDB-O的Oracle平滑迁移方案.pdf

    PolarDB-O 支持 PL/SQL 语言,包括EXEC SQL INCLUDE、EXEC CONNECT service、EXEC SQL BEGIN/END、DECLARE SECTION、EXEC SQL EXECUTE、EXEC SQL PREPARE/EXECUTE、EXEC SQL ALLOCATE、EXEC SQL OPEN|FETCH、EXEC ...

Global site tag (gtag.js) - Google Analytics