爱问知识人 爱问教育 医院库

Oracle拆分字符串函数有哪些呢?

首页

Oracle拆分字符串函数有哪些呢?

Oracle拆分字符串函数有哪些呢?

提交回答

全部答案

    2018-04-05 11:06:39
  •   以“指定字符串”进行拆分,并通过表结构返回结果。代码如下:
    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。

    z***

    2018-04-05 11:06:39

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):