zoukankan      html  css  js  c++  java
  • [转载]Oracle Str Split Function

    create or replace type tb_strSplit  as table of varchar2(4000);

    create or replace function to_table(pv_str varchar2,pv_split varchar2) return tb_strSplit
    as
      ltab tb_strSplit := tb_strSplit();
      pos integer := 0;
      ls varchar2(4000) := pv_str;
    begin
      pos := instr(ls,pv_split);
      while pos > 0 loop
        ltab.extend;
        ltab(ltab.count) := substr(ls,1,pos - 1);
        ls := substr(ls,pos + length(pv_split));
        pos := instr(ls,pv_split);
      end loop;
      ltab.extend;
      ltab(ltab.count) := ls;
      return ltab;
    end;


    set serverout on
    declare
    aa tbl_str;
    begin
    aa := to_table('a|||b|||c','|||');
    for i in 1..aa.count loop
            dbms_output.put_line(aa(i));
    end loop;
    end;
    /

    ----------------------------------------------------------

    CREATE OR REPLACE function strToTb(inVStr in string,inStrSplit in varchar) return tb_strSplit PIPELINED
    as
    v_tmp varchar2(4000);
    v_element varchar2(4000);
    begin

    v_tmp := inVStr;
    while instr(v_tmp,inStrSplit)>0 loop
       v_element := substr(v_tmp,1,instr(v_tmp,inStrSplit)-1);
       v_tmp := substr(v_tmp,instr(v_tmp,inStrSplit)+length(inStrSplit),length(v_tmp));
       pipe row(v_element);
    end loop;

    pipe row(v_tmp);

    return;
    end strToTb;
    /

    select * from table(strToTb('a|||b|||c','|||'));

  • 相关阅读:
    Node.js运行Vue项目
    DotNetCore知识栈
    Building gRPC Client iOS Swift Note Taking App
    React Native
    Node.js 教程
    SQL 在线教程&在线练习平台
    RxSwift + Moya + ObjectMapper
    浅谈常用的几种web攻击方式
    让MyEclipse支持mac的Retina屏解决字体模糊的问题
    Java设计模式中的单例模式
  • 原文地址:https://www.cnblogs.com/RobotTech/p/1911124.html
Copyright © 2011-2022 走看看