plsql 类似Java中的split方法 字符串分割
2012-11-08 15:14
543 查看
--包头
CREATE OR REPLACE PACKAGE asset_formation_api IS -- Author : DIQYE -- Created : 2012/11/8 10:40:38 -- Purpose : dd TYPE check_bill_id_table IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER; constant_name CONSTANT VARCHAR2(10) := 'ddddd'; -- 分割符 split_code CONSTANT CHAR := ','; --已建卡 created_card CONSTANT NUMBER(1) := 0; --未建卡 not_create_card CONSTANT NUMBER(1) := 1; --分割字符串 以逗号分割 FUNCTION str_split(str IN VARCHAR2) RETURN check_bill_id_table; --验证这些这些验收单的系统验收单是否已经建卡 --已建卡 check_result = 0 --未建卡 check_result = 1 PROCEDURE check_parent(str IN VARCHAR2, check_result OUT NUMBER); END asset_formation_api;
包体
create or replace package body asset_formation_api is current_p INTEGER; --当前字符串的位置 last_p INTEGER := 1; -- 上次逗号出现的位置 str_num INTEGER :=1; --截取字符串的数量 没截取一次加一 FUNCTION nextStr(str IN VARCHAR2) RETURN VARCHAR2; PROCEDURE init IS BEGIN current_p := 1; last_p := 1; str_num := 1; END; -- Public function and procedure declarations --分割字符串 以逗号分割 FUNCTION str_split(str IN VARCHAR2) RETURN check_bill_id_table IS i INTEGER := 1; --集合下标 reslt asset_formation_api.check_bill_id_table; --返回结果 param VARCHAR2(2000); s VARCHAR2(100); --分割之后的 单个的字符串 BEGIN init; param := TRIM(str)||','; LOOP s := nextStr(param); EXIT WHEN s IS NULL; reslt(i) := s; i := i+1; END LOOP; RETURN reslt; END; --验证这些这些验收单的系统验收单是否已经建卡 --已建卡 check_result = 0 --未建卡 check_result = 1 PROCEDURE check_parent(str IN VARCHAR2, check_result OUT NUMBER) IS BEGIN NULL; END; FUNCTION nextStr(str IN VARCHAR2) RETURN VARCHAR2 IS reslt VARCHAR2(100); sp_p INTEGER; --逗号在str中出现的第last_p个位置 BEGIN sp_p := instr(str, split_code,1,str_num); IF sp_p = 0 THEN reslt := NULL; ELSIF str_num = 1 THEN reslt := substr(str, last_p,sp_p-last_p); ELSE reslt := substr(str, last_p+1,sp_p-last_p-1); END IF; last_p := sp_p; str_num := str_num + 1; RETURN reslt; END; end asset_formation_api;
相关文章推荐
- 模拟java的split函数,分割字符串,类似于java的split方法
- java 中用split分割字符串,最后的空格等不被拆分的方法
- Java字符串分割方法split()的功能以及使用方法的详细介绍!
- Java中分割字符串的方法--String.split()
- 模拟java的split函数,分割字符串,类似于java的split方法
- java 字符串 分割 split 方法
- Java中分割字符串split() 方法
- java中用split()方法分割字符串--用特殊字符分割得不到想要的结果的情况
- 不依赖java的:String.split方法分割字符串
- orcal 分割字符串(JAVA中Split方法)
- 字符串分割-Java中的String.split()方法
- 【Java学习笔记】使用split()方法分割字符串
- Mysql中的字符串拆分方法 (类似java中split()与PaAdmin库中的split_part()函数)
- java 关于split分割字符串,空结果不能得到的问题,多个分隔符的处理
- Qt字符串和java字符串的split方法比较和python的解析比较
- 0714学习笔记list常用操作索引(index)和切片(slice) 字符串的方法分割split和连接join
- c#中Split分割字符串的几种方法
- java split 分割字符串
- 字符串分割--java中String.split()用法
- c#使用Split方法分割字符串