Oracle PLSQL Demo - 24.分隔字符串function
2015-06-29 23:08
387 查看
-- refer: -- http://www.cnblogs.com/gnielee/archive/2009/09/09/1563154.html -- http://www.cnblogs.com/yudy/archive/2012/07/18/2597874.html CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2 := ',') RETURN ty_str_split PIPELINED AS v_length NUMBER := LENGTH(p_string); v_start NUMBER := 1; v_index NUMBER; v_length_delimiter NUMBER := LENGTH(p_delimiter); BEGIN WHILE(v_start <= v_length) LOOP v_index := INSTR(p_string, p_delimiter, v_start); IF v_index = 0 THEN PIPE ROW(SUBSTR(p_string, v_start)); v_start := v_length + 1; ELSE PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start)); v_start := v_index + v_length_delimiter; END IF; END LOOP; RETURN; END splitstr;
相关文章推荐
- Oracle PLSQL Demo - 22.查看字符串的长度[lengthb, length],判断字符串是否包含中文
- Oracle PLSQL Demo - 20.弱类型REF游标[没有指定查询类型,也不指定返回类型]
- Oracle PLSQL Demo - 19.管道function[查询整表组成list管道返回]
- Oracle PLSQL Demo - 18.02.管道function[查询零散的字段组成list管道返回] [字段必须对上]
- Oracle PLSQL Demo - 18.01管道function[查询零散的字段组成list管道返回]
- Oracle PLSQL Demo - 17.游标查询个别字段(非整表)
- Oracle PLSQL Demo - 16.弱类型REF游标[没有指定查询类型,已指定返回类型]
- Oracle PLSQL Demo - 15.强类型REF游标[预先指定查询类型与返回类型]
- Oracle PLSQL Demo - 14.定义定参数的显示游标
- Oracle PLSQL Demo - 12.定义包体[Define PACKAGE BODY]
- Oracle PLSQL Demo - 11.定义包头[Define PACKAGE]
- Oracle PLSQL Demo - 09.Open、Fetch遍历游标[Open, Fetch, Close Record CURSOR]
- Oracle PLSQL Demo - 08.定义显式游标[Define CURSOR, Open, Fetch, Close CURSOR]
- Oracle PLSQL Demo - 03.流程判断[IF ELEIF ELSE]
- Oracle PLSQL Demo - 02.SELECT INTO单行赋值[SELECT INTO variables]
- Oracle PLSQL Demo - 01.定义变量、打印信息
- oracle exp/imp和sqlload
- oracle存储过程基本语法
- Oracle基础(三)数据库管理
- Java向Oracle数据库插入时间