zoukankan      html  css  js  c++  java
  • 以固定分隔符拆分字符串

    1. PROCEDURE Str_To_Arr(p_Source_Str IN VARCHAR2,
    2.                        p_Split_Str IN VARCHAR2,
    3.                        Errbuf OUT VARCHAR2,
    4.                        Retcode OUT VARCHAR2,
    5.                        p_Dens_Array OUT Type_Tab_Arr) IS
    6.     v_Source_Str VARCHAR2(1000);
    7.     v_Split_Str VARCHAR2(8);
    8.     v_Count NUMBER; ----分割的个数
    9.     v_Split_Local NUMBER; ----分割符出现的位置
    10.     v_Pos_Local NUMBER; ----分割起始位置
    11.     v_Tab_Arr Xxt_Gl_Load_Vat_Pkg.Type_Tab_Arr;
    12.   BEGIN
    13.     Retcode := 0;
    14.     v_Pos_Local := 1;
    15.     v_Count := 1;
    16.     v_Source_Str := p_Source_Str;
    17.     v_Split_Str := p_Split_Str;
    18.     IF Length(v_Source_Str) = 0 THEN
    19.       Log('判断1');
    20.       Errbuf := '要分割的字符串为空,请输入要分割的字符串!';
    21.       Retcode := '2';
    22.       RETURN;
    23.     END IF;
    24.     IF Length(v_Split_Str) = 0 THEN
    25.       Log('判断2');
    26.       Errbuf := '请输入要分割的界定符!';
    27.       Retcode := '2';
    28.       RETURN;
    29.     END IF;
    30.     ---取出字符串的个数
    31.     SELECT Length(v_Source_Str) -
    32.            Length(REPLACE(Translate(v_Source_Str, v_Split_Str, ' '),
    33.                           ' ',
    34.                           '')) / Length(v_Split_Str)
    35.       INTO v_Count
    36.       FROM Dual;
    37.     FOR i IN 1 .. v_Count LOOP
    38.       SELECT Instr(v_Source_Str, v_Split_Str, v_Pos_Local + 1, 1)
    39.         INTO v_Split_Local
    40.         FROM Dual;
    41.       IF v_Split_Local = 0 THEN
    42.         v_Tab_Arr(i) := v_Source_Str;
    43.         dbms_output.put_line(v_tab_arr(i));
    44.         EXIT;
    45.       ELSE
    46.         IF i = 1 THEN
    47.           v_Tab_Arr(i) := Substr(v_Source_Str,
    48.                                  v_Pos_Local,
    49.                                  v_Split_Local - v_Pos_Local);
    50.           v_Pos_Local := v_Split_Local;
    51.           Dbms_Output.Put_Line(v_Tab_Arr(i));
    52.         ELSE
    53.           v_Tab_Arr(i) := Substr(v_Source_Str,
    54.                                  v_Pos_Local + Length(v_Split_Str),
    55.                                  v_Split_Local -
    56.                                  (v_Pos_Local + Length(v_Split_Str)));
    57.           v_Pos_Local := v_Split_Local;
    58.           --Dbms_Output.Put_Line(v_Tab_Arr(i));
    59.         END IF;
    60.       END IF;
    61.     END LOOP;
    62.     p_Dens_Array := v_Tab_Arr;
    63.   END Str_To_Arr;
  • 相关阅读:
    Delphi6函数大全(1)
    chr码值对应列表大全
    delphi控制POS打印机
    java network programming 第七章
    loop msn 2
    java ftp 资源
    java network programming 第六章
    IM模型的几个概念
    TCP/IP网络互连技术 卷3 winsock篇
    看你网络安全的水平!!
  • 原文地址:https://www.cnblogs.com/accumulater/p/7081457.html
Copyright © 2011-2022 走看看