Oracle截取字符串函数function
2018-09-12 13:35
295 查看
1.
CREATE OR REPLACE FUNCTION split (p_list CLOB, p_sep VARCHAR2 := ',') RETURN tabletype PIPELINED /************************************** * Name: split * Author: Zyj. * Date: 2016-12-03. * Function: 返回字符串被指定字符分割后的表类型。 * Parameters: p_list: 待分割的字符串。 p_sep: 分隔符,默认逗号,也可以指定字符或字符串。 * Example: SELECT * FROM users WHERE u_id IN (SELECT COLUMN_VALUE FROM table (split ('1,2'))) 返回u_id为1和2的两行数据。 **************************************/ IS l_idx PLS_INTEGER; v_list VARCHAR2 (4000) := 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; END;
2.
CREATE OR REPLACE TYPE "TABLETYPE" as table of VARCHAR2(4000);
3.
create or replace function splitStr(str in clob, i in number := 0, sep in varchar2 := ',') return varchar2 is t_i number; t_count number; t_str varchar2(4000); begin if i = 0 then t_str := str; elsif instr(str, sep) = 0 then t_str := sep; else select count(*) into t_count from table(split(str, sep)); if i <= t_count then select str into t_str from (select rownum as item, column_value as str from table(split(str, sep))) where item = i; end if; end if; return t_str; end /** @author ZYJ 2016-06-12 截取字符串 ex:splitStr('2016-05',1,'-') return 2016; */;阅读更多
相关文章推荐
- oracle中对字母加数字列的排序及截取字符串函数substr介绍
- oracle字符串截取函数
- oracle中常用的字符串查找、替换以及截取函数的用法!
- ORACLE字符串截取函数 trim(),ltrim(),rtrim()
- oracle函数总结:有精确小数位的函数,字符串截取函数,大小写转换函数,字符串截取匹配函数,日期函数,系统
- oracle截取字符串的函数substr
- Oracle截取字符串的函数substr
- oracle中去除字符串两边的空格和,替换,截取字符串的函数
- Oracle截取字符串的函数substr
- Oracle和MySQL中通用的字符串截取函数——substr()
- ORACLE-字符串截取函数
- Oracle函数,按分隔符截取字符串
- [orcle] oracle截取字符串的函数substr
- Oracle的substr函数简单用法 substr(字符串,截取开始位置,截取长度
- 17、oracle:oracle模糊查询,截取字符串以及搜索字符等函数
- ORACLE字符串截取函数trim(),ltrim(),rtrim()
- oracle字符串截取函数
- oracle中to_number字符串转数字、max取最大值、dbms_random.value生成随机数及对小数做截取,四舍五入操作的函数
- oracle字符串截取函数substr
- oracle模糊查询,截取字符串以及搜索字符等函数