`
koudailidexiaolong
  • 浏览: 96108 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ORACLE 中字符串转换为数组的函数方法

 
阅读更多

CREATE OR REPLACE TYPE splitArray AS TABLE OF VARCHAR2(2048); --------字符串拆分函数 CREATE OR REPLACE FUNCTION fu_split_Array ( str IN VARCHAR2,--输入的字符串 split_param IN VARCHAR2 --拆分的参数 ) RETURN splitArray IS split_array splitArray := splitArray();--定义拆分数组 t_temp VARCHAR2(2048); t_begin number :=0;--循环变量开始参数 t_end number := 1;--截取字符长度的开始位置结束参数 t_length number :=0;--字符串的长度 t_paramLength number :=0;--传入字符串截取参数的长度 BEGIN t_length := length(str);--获取传入字符的长度 t_paramLength := length(split_param);--截取参数的长度 --在temp 变量中查找 split_param 检索当前split_param字符串的位置 如果没有找到则返回0 WHILE t_begin < t_length LOOP dbms_output.put_line('截取='||t_begin); --起始位置从1开始截取匹配split_param字符串并返回他所在的位置 t_begin := instr(str,split_param,t_end); /* IF t_begin = 0 THEN Dbms_Output.put_line('见到了'); t_begin := t_length; t_temp := SUBSTR (str, t_end); split_array.extend; split_array (split_array.count) := str; IF t_end >= t_length THEN Dbms_Output.put_line('见到了11111111111'); EXIT; END IF; ELSE*/ --判断当前是否长度超出原字符串长度 如果超出则不执行 IF t_end >= t_length THEN --Dbms_Output.put_line('见到了11111111111'); EXIT; END IF; t_temp := SUBSTR(str,t_end,t_begin-t_end); --dbms_output.put_line(t_temp); t_end := t_begin+t_paramLength; split_array.extend; split_array(split_array.count) := t_temp; /*END IF;*/ END LOOP; RETURN split_array; END fu_split_Array;

--测试

SELECT fu_split_Array('A,B,C,D,E,',',') FROM DUAL;

备注 :如果你的字符串最后一位含有分隔符例如“,”之类的标示 则使用红色未注释部分

如果你的字符串最后一位没有标记 则使用橘色注释部分代码 则返回所有的字符串你就需要重新截取最后一位了目前

我只了解这些 还在测试阶段 完善了全部黏贴出来 谢谢!希望对您有帮助!


<wbr></wbr>
分享到:
评论

相关推荐

    oracle_split_函数_返回数组

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

    oracle函数

    5. **DATEVALUE(datetime)**:将日期时间字符串转换为日期时间值。 6. **DAY(datetime)**:返回给定日期时间值中的天数。 ### 条件和搜索函数 1. **IIF(expression, truepart, falsepart)**:根据表达式的真假...

    orcale数据库中的函数

    以下是一些在 Oracle 数据库中常用的字符串处理函数的详细解释: 1. **AddSlashes()**: 这个函数用于在字符串中的特殊字符前添加反斜线(\),如单引号(')和双引号("),以防止 SQL 注入攻击。它常用于预处理...

    PHP程序设计习题答案.pdf

    * 能将字符串转换为数组的函数是 explode()。 * 在 PHP 中, implode 函数能将数组转化为字符串。 * 使用 strcmp 函数比较两个字符串的大小,结果相同返回 true,不同返回 false。 * strcmp() 函数是根据 ASCII 码值...

    oracle ebs开发文档

    这部分讲解了如何在 PL/SQL 中将字符串转换为数组,这对于处理复杂的字符串操作非常有用。 #### 六、Oracle EBS 开发工具 **6.1 开发工具安装** 这部分介绍了如何安装 Oracle EBS 的开发工具,包括必要的软件和配置...

    OracleEBS开发汇总文档

    17. **PL/SQL实现字符串转成数组** - **方法**: 使用内置函数如`REGEXP_SUBSTR`结合循环结构实现。 - **应用场景**: 数据转换。 18. **PowerDesigner** - **解释**: 数据建模工具。 - **应用场景**: 数据库设计...

    ORACLE EBS 开发基础

    - 通过编写自定义函数或过程,可以将字符串转换为数组。 #### 五、EBS二次开发 **1. 开发工具安装** - 安装必要的开发工具,如Oracle Developer Suite等。 **2. EBS二次开发包注册** - 注册EBS二次开发包是集成...

    Oracle-ERP开发笔记

    PL/SQL实现字符串转成数组** - 字符串转数组是一个常见的数据处理需求。 **20. ORA-01403之解决方法** - ORA-01403错误通常发生在尝试从不存在的记录中检索数据时。 **21. PL/SQL细粒度事务控制** - 细粒度事务...

    ORACLEEBS_FORM

    - **PL/SQL 实现字符串转成数组**:一种常见的数据转换需求。 - **PowerDesigner**:一种用于数据库设计和建模的工具。 - **ORA-01403 未找到数据之解决方法**:介绍了如何处理常见的ORA-01403错误。 - **PL/SQL...

    OracleEBS_EBS开发

    - **PL/SQL实现字符串转成数组**:转换数据格式以适应不同的处理需求。 - **PowerDesigner**:一款用于数据库设计和建模的工具。 - **ORA-01403未找到数据之解决方法**:处理查询结果为空的情况。 - **PL/SQL细粒度...

    Oracle-ERP(NEW)笔记

    - **字符串转数组**:掌握PL/SQL中字符串转换为数组的技巧,方便数据处理。 - **优化器原理**:理解Oracle的优化器原理,合理编写SQL语句,提升查询性能。 - **PowerDesigner使用**:PowerDesigner在数据库设计和...

    石家庄天远科技集团有限公司—Java开发笔试题

    Oracle中的字符串操作函数包括`CONCAT()`连接字符串,`ASCII()`返回对应整数的字符,`INSTR()`查找字符位置,`SUBSTR()`截取子字符串,`SYSDATE`获取当前日期,`TO_DATE()`将字符串转换为日期。 【团队意识】 团队...

    java面试题

    10. **超大整数的存储与运算**:设计超大整数类`BigInt`,可使用数组存储多位数字,如`int[] ArrOne`,提供方法将字符串转换为数组。加法运算可以通过逐位相加并处理进位来实现。 11. **图形系统的基本元件**:设计...

    LabVIEW老蔡数据库操作文档、程序.rar

    读取数据时,可以将结果转换为数组或簇形式,便于进一步处理。 4. **事务处理**:对于需要确保数据完整性的操作,LabVIEW支持使用“开始事务”、“提交事务”和“回滚事务”函数来执行数据库事务。这可以确保一组...

    MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    它接受三个参数:原始字符串、分隔符和计数。如果计数是正数,它会返回从左侧开始到分隔符出现指定次数的所有字符;如果是负数,它会从右侧开始计算,返回分隔符右边的字符。 在这个例子中,`substring_index(a....

    php网络开发完全手册

    3.2.5 转换成数组 56 3.2.6 转换成对象 56 3.2.7 使用函数进行数据类型的强制 3.2.7 转换 57 3.3 小结 57 第4章 函数处理与数据引用 58 4.1 函数的定义与使用 58 4.1.1 函数的调用 58 4.1.2 用户自定义函数的编写 58...

    轻松学C#(图解版)

    6.5.9 为数组中的某个元素重新赋值 111 6.5.10 对数组元素进行重新排序 112 6.6 小结 112 6.7 习题 113 第7章 继承 115 7.1 C#的继承机制 115 7.1.1 概述 115 7.1.2 初识继承 116 7.2 访问修饰符 118 7.3 成员继承 ...

    java框架整理

    - 集合可以使用 `toArray()` 方法转换为数组。 10. **跨域请求(CORS)**: - 在Filter中,通过设置响应头 `Access-Control-Allow-Origin` 可以允许跨域请求,例如 `resp.setHeader("Access-Control-Allow-Origin...

    java初级知识

    ### Java初级知识要点详解 #### 一、Java概述与基础知识 **1....** 编程是指通过编写计算机程序来实现...`StringBuffer`和`StringBuilder`都是用于操作字符串的类,其中`StringBuilder`在非线程安全的环境中效率更高。 ...

Global site tag (gtag.js) - Google Analytics