ORACLE(PL/SQL) 根据字符分割(SPLIT)字符串返回数组
来源:互联网 发布:淘宝虚拟店铺 编辑:程序博客网 时间:2024/04/29 17:26
ORACLE没有提供现成的函数来进行字符串的分割,网上有很多中现实方法,本文介绍一种我自己的实现方式。主要是使用Oracle内部函数instr和substr函数的方式来实现。
CREATE OR REPLACE FUNCTION str_split(in_str VARCHAR2,in_sep VARCHAR2)RETURN type_splitIS --分割字符串位置索引 v_sep_pos PLS_INTEGER; --存储分割后的字符串数组 v_str_array type_split:=type_split(); --substr起始索引 v_start_idx PLS_INTEGER:=1;BEGIN v_sep_pos:=instr(in_str,in_sep); WHILE(v_sep_pos>0) LOOP v_str_array.extend; v_str_array(v_str_array.last):=substr(in_str,v_start_idx,v_sep_pos-v_start_idx); v_start_idx:=v_sep_pos+1; v_sep_pos:=instr(in_str,in_sep,v_start_idx); END LOOP; v_str_array.extend; v_str_array(v_str_array.last):=substr(in_str,v_start_idx,length(in_str)-v_start_idx+1); FOR i in v_str_array.first..v_str_array.last LOOP dbms_output.put_line(v_str_array(i)); END LOOP; RETURN v_str_array;END str_split;
验证测试:
SQL> set serveroutput on;SQL> SQL> DECLARE 2 v_str_array type_split; 3 BEGIN 4 v_str_array:=str_split('YaoMing#T-MAC#LBJ','#'); 5 FOR i in v_str_array.first..v_str_array.last 6 LOOP 7 dbms_output.put_line(v_str_array(i)); 8 END LOOP; 9 END; 10 /YaoMingT-MACLBJ
0 0
- ORACLE(PL/SQL) 根据字符分割(SPLIT)字符串返回数组
- SQL根据下标,返回split分割后字符串
- 一个扩展后的Split方法,可根据字符串分隔字符,返回字符数组
- [Oracle]分割字符串返回数组
- [Oracle]分割字符串返回数组
- [Oracle]分割字符串返回数组
- Oracle字符串分割Split(超简单一条sql解决)
- 在PL/SQL中如何分割字符串(Split String)
- 2、Oracle PL/SQL字符串分割截取
- Oracle 字符串分割 Split
- Oracle字符串分割Split
- sql 分割字符串split
- 字符串根据多个字符进行分割的一种方法(使用split而不是regex.split更不是replace)
- Java 中 使用 String.split 分割 字符串 成 字符数组
- SQL 根据指定字符截取字符串Split函数
- SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
- oracle字符串分割函数split
- ORACLE实现字符串分割SPLIT
- android camera接口介绍
- ssh和while的竞争
- 【C++】后序线索化二叉树及其遍历
- c语言可变参数的两种用法
- 2015年大二上-数据结构-串(1)- 顺序串算法库
- ORACLE(PL/SQL) 根据字符分割(SPLIT)字符串返回数组
- 添加的从web向数据库写入数据的模块
- POJ-1417-并查集-True Liars
- 《中国人的性格》摘要
- C#人民币金额大写转换
- vim cscope使用
- VMware虚拟机的CentOS无法上网的解决方法(原先可以上网忽然不能了的解决)
- 常用break,优化代码执行率
- 客制的展BOM程式