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数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...
5. **DATEVALUE(datetime)**:将日期时间字符串转换为日期时间值。 6. **DAY(datetime)**:返回给定日期时间值中的天数。 ### 条件和搜索函数 1. **IIF(expression, truepart, falsepart)**:根据表达式的真假...
以下是一些在 Oracle 数据库中常用的字符串处理函数的详细解释: 1. **AddSlashes()**: 这个函数用于在字符串中的特殊字符前添加反斜线(\),如单引号(')和双引号("),以防止 SQL 注入攻击。它常用于预处理...
* 能将字符串转换为数组的函数是 explode()。 * 在 PHP 中, implode 函数能将数组转化为字符串。 * 使用 strcmp 函数比较两个字符串的大小,结果相同返回 true,不同返回 false。 * strcmp() 函数是根据 ASCII 码值...
这部分讲解了如何在 PL/SQL 中将字符串转换为数组,这对于处理复杂的字符串操作非常有用。 #### 六、Oracle EBS 开发工具 **6.1 开发工具安装** 这部分介绍了如何安装 Oracle EBS 的开发工具,包括必要的软件和配置...
17. **PL/SQL实现字符串转成数组** - **方法**: 使用内置函数如`REGEXP_SUBSTR`结合循环结构实现。 - **应用场景**: 数据转换。 18. **PowerDesigner** - **解释**: 数据建模工具。 - **应用场景**: 数据库设计...
- 通过编写自定义函数或过程,可以将字符串转换为数组。 #### 五、EBS二次开发 **1. 开发工具安装** - 安装必要的开发工具,如Oracle Developer Suite等。 **2. EBS二次开发包注册** - 注册EBS二次开发包是集成...
PL/SQL实现字符串转成数组** - 字符串转数组是一个常见的数据处理需求。 **20. ORA-01403之解决方法** - ORA-01403错误通常发生在尝试从不存在的记录中检索数据时。 **21. PL/SQL细粒度事务控制** - 细粒度事务...
- **PL/SQL 实现字符串转成数组**:一种常见的数据转换需求。 - **PowerDesigner**:一种用于数据库设计和建模的工具。 - **ORA-01403 未找到数据之解决方法**:介绍了如何处理常见的ORA-01403错误。 - **PL/SQL...
- **PL/SQL实现字符串转成数组**:转换数据格式以适应不同的处理需求。 - **PowerDesigner**:一款用于数据库设计和建模的工具。 - **ORA-01403未找到数据之解决方法**:处理查询结果为空的情况。 - **PL/SQL细粒度...
- **字符串转数组**:掌握PL/SQL中字符串转换为数组的技巧,方便数据处理。 - **优化器原理**:理解Oracle的优化器原理,合理编写SQL语句,提升查询性能。 - **PowerDesigner使用**:PowerDesigner在数据库设计和...
Oracle中的字符串操作函数包括`CONCAT()`连接字符串,`ASCII()`返回对应整数的字符,`INSTR()`查找字符位置,`SUBSTR()`截取子字符串,`SYSDATE`获取当前日期,`TO_DATE()`将字符串转换为日期。 【团队意识】 团队...
10. **超大整数的存储与运算**:设计超大整数类`BigInt`,可使用数组存储多位数字,如`int[] ArrOne`,提供方法将字符串转换为数组。加法运算可以通过逐位相加并处理进位来实现。 11. **图形系统的基本元件**:设计...
读取数据时,可以将结果转换为数组或簇形式,便于进一步处理。 4. **事务处理**:对于需要确保数据完整性的操作,LabVIEW支持使用“开始事务”、“提交事务”和“回滚事务”函数来执行数据库事务。这可以确保一组...
它接受三个参数:原始字符串、分隔符和计数。如果计数是正数,它会返回从左侧开始到分隔符出现指定次数的所有字符;如果是负数,它会从右侧开始计算,返回分隔符右边的字符。 在这个例子中,`substring_index(a....
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...
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 成员继承 ...
- 集合可以使用 `toArray()` 方法转换为数组。 10. **跨域请求(CORS)**: - 在Filter中,通过设置响应头 `Access-Control-Allow-Origin` 可以允许跨域请求,例如 `resp.setHeader("Access-Control-Allow-Origin...
### Java初级知识要点详解 #### 一、Java概述与基础知识 **1....** 编程是指通过编写计算机程序来实现...`StringBuffer`和`StringBuilder`都是用于操作字符串的类,其中`StringBuilder`在非线程安全的环境中效率更高。 ...