Oracle认证:拆分字符串函数
来源:优易学  2011-9-28 14:55:35   【优易学:中国教育考试门户网】   资料下载   IT书店
 本函数可以将“目标字符串”以“指定字符串”进行拆分,并通过表结构返回结果。代码如下:
  CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000);
  CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
  RETURN str_split
  PIPELINED
  AS
  v_length  NUMBER := LENGTH(p_string);
  v_start  NUMBER := 1;
  v_index  NUMBER;
  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 + 1;
  END IF;
  END LOOP;
  RETURN;
  END splitstr;
  创建完毕后,我们来测试一下,例如执行如下SQL:
  select * from table(splitstr('Hello,Cnblogs!',','));
  其输出结果为一个两行的表,如下图:
  将行转为列显示:
  select a.column_value v1,b.column_value v2 from
  (select * from (select rownum rn,t.* from table(splitstr('Hello,Cnblogs!',',')) t)) a,
  (select * from (select rownum rn,t.* from table(splitstr('Hello,Cnblogs!',',')) t)) b
  where a.rn=1 and b.rn=2

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训