自定義函式實現字串分割,返回集合型別
為了實現將tom,lucy,polly這種樣式的字串按照分隔符分割,可以使用下面的自定義函式:
--建立工具型別
CREATE OR REPLACE TYPE VARCHAR2ARRAY AS TABLE OF VARCHAR2(1000);
--建立工具函式
CREATE OR REPLACE FUNCTION SPLITSTR2ARRAY(v_sourcestring IN VARCHAR2,v_delimiter IN VARCHAR2)
RETURN VARCHAR2ARRAY
IS
v_len NUMBER;
v_tmpstr VARCHAR2(1000);
v_postion1 NUMBER := 0;
v_postion2 NUMBER := 0;
v_resultarray VARCHAR2ARRAY := VARCHAR2ARRAY();
BEGIN
v_tmpstr := TRIM(v_delimiter FROM TRIM(v_sourcestring));
v_len := LENGTH(v_tmpstr);
IF v_len = 0 THEN
RETURN v_resultarray;
ELSIF INSTR(v_tmpstr,v_delimiter) = 0 THEN
v_resultarray.extend;
v_resultarray(v_resultarray.count) := TRIM(v_tmpstr);
RETURN v_resultarray;
ELSE
WHILE INSTR(v_tmpstr,v_delimiter) > 0 LOOP
v_resultarray.extend;
v_resultarray(v_resultarray.count) := SUBSTR(v_tmpstr,1,INSTR(v_tmpstr,v_delimiter)-1);
v_tmpstr := SUBSTR(v_tmpstr,INSTR(v_tmpstr,v_delimiter)+1,LENGTH(v_tmpstr));
END LOOP;
v_resultarray.extend;
v_resultarray(v_resultarray.count) := TRIM(v_delimiter FROM TRIM(v_tmpstr));
RETURN v_resultarray;
END IF;
END SPLITSTR2ARRAY;
/
--使用
declare v_results VARCHAR2ARRAY := VARCHAR2ARRAY();
v_counter NUMBER;
begin
SELECT SPLITSTR2ARRAY('tom,lucy,lily',',') INTO v_results FROM dual;
v_counter := v_results.first;
WHILE v_counter IS NOT NULL LOOP
dbms_output.put_line(v_results(v_counter));
v_counter := v_results.next(v_counter);
END LOOP;
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28998293/viewspace-1311627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP實現強型別函式返回值PHP型別函式
- 編號函式 自定義函式 集合型別 表的優化 資料傾斜函式型別優化
- 型別自定義格式字串型別字串
- PHP 自定義函式用法及常用函式集合PHP函式
- C# 泛型集合的自定義型別排序C#泛型型別排序
- PKG_COLLECTION_LHR 儲存過程或函式返回集合型別儲存過程函式型別
- jQuery如何實現新增自定義函式jQuery函式
- MS SQL Server 建立返回表型別的使用者自定義函式SQLServer型別函式
- SQLserver自定義樣式主鍵-函式實現篇SQLServer函式
- C學習--自定義字串連線函式字串函式
- C 語言中返回字串函式的四種實現方法字串函式
- 自定義型別型別
- 自定義GridView實現分割線解析View
- 函式引數 引數定義函式型別函式型別
- 案例展示自定義C函式的實現過程函式
- 集合框架-ArrayList儲存字串、自定義物件並遍歷泛型版框架字串物件泛型
- php:給php增加函式強制型別返回PHP函式型別
- Swift 整理(三)——字串、集合型別Swift字串型別
- 自定義一個可以接收空格的字串的函式字串函式
- Oracle自定義函式檢視2個字串是否匹配Oracle函式字串
- 對於返回值型別不確定的函式如何限定返回值型別型別函式
- shell自定義函式函式
- Oracle 自定義函式Oracle函式
- perl自定義函式函式
- oracle集合型別的一些基本函式Oracle型別函式
- Apache Phoenix自定義函式(UDF)實踐Apache函式
- Redis序列化儲存Java集合List等自定義型別RedisJava型別
- Hive常用函式及自定義函式Hive函式
- Oracle自定義函式---按照某個分隔符拆分字串Oracle函式字串
- [PY3]——函式——函式註解 | 實現型別檢查功能函式型別
- 如何實現函式返回多個值函式
- Go 之基礎速學 (二) 語法套路:型別、定義函式、返回值Go型別函式
- 自定義資料型別資料型別
- Pl/SQL 自定義型別SQL型別
- ORACLE 自定義型別[轉]Oracle型別
- [譯] 為函式自定義屬性的八種實現方法函式
- 建立一個字串分割的函式字串函式
- hive 3.0.0自定義函式Hive函式