zoukankan      html  css  js  c++  java
  • oracle split() 函数

     1 create type tabletype is table of varchar2(3000);
     2 CREATE OR REPLACE FUNCTION split (p_list CLOB, p_sep VARCHAR2 := ',')
     3 RETURN tabletype
     4 PIPELINED
     5 /**************************************
     6 * Name: split
     7 * Author: Sean Zhang.
     8 * Date: 2012-09-03.
     9 * Function: 返回字符串被指定字符分割后的表类型。
    10 * Parameters: p_list: 待分割的字符串。
    11 p_sep: 分隔符,默认逗号,也可以指定字符或字符串。
    12 * Example: SELECT *
    13 FROM users
    14 WHERE u_id IN (SELECT COLUMN_VALUE
    15 FROM table (split ('1,2')))
    16 返回u_id为1和2的两行数据。
    17 **************************************/
    18 IS
    19 l_idx PLS_INTEGER;
    20 v_list VARCHAR2 (32676) := p_list;
    21 BEGIN
    22 LOOP
    23 l_idx := INSTR (v_list, p_sep);
    24 IF l_idx > 0
    25 THEN
    26 PIPE ROW (SUBSTR (v_list, 1, l_idx - 1));
    27 v_list := SUBSTR (v_list, l_idx + LENGTH (p_sep));
    28 ELSE
    29 PIPE ROW (v_list);
    30 EXIT;
    31 END IF;
    32 END LOOP;
    33 END;
    --test code 
    select * from table(split('1,2,3,4,5,6',','));
  • 相关阅读:
    testd3p
    my open音频的
    1
    one play
    ndk ffmpeg实践2
    ndk ffmpeg实践
    Mac ndk21 交叉ffmpeg目前
    ffmpeg交叉
    and cmake 链接库及播放例子 及读文件
    更正之前《登录小案例》密码错3次15分钟内不准登录
  • 原文地址:https://www.cnblogs.com/linbo3168/p/6066078.html
Copyright © 2011-2022 走看看