自定義函式實現字串分割,返回集合型別
為了實現將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函式
- C# 泛型集合的自定義型別排序C#泛型型別排序
- T-SQL——自定義函式解析JSON字串SQL函式JSON字串
- C學習--自定義字串連線函式字串函式
- 使用自定義委託來呼叫Lua中的多返回值和長引數型別函式型別函式
- 自定義型別型別
- 函式引數 引數定義函式型別函式型別
- 案例展示自定義C函式的實現過程函式
- 自定義一個可以接收空格的字串的函式字串函式
- Oracle 自定義函式Oracle函式
- shell自定義函式函式
- Apache Phoenix自定義函式(UDF)實踐Apache函式
- Task3&Task4(函式的定義與呼叫,返回型別的選擇)函式型別
- Hive常用函式及自定義函式Hive函式
- C++模板函式實現型別推導C++函式型別
- [譯] 為函式自定義屬性的八種實現方法函式
- Go 之基礎速學 (二) 語法套路:型別、定義函式、返回值Go型別函式
- hive 3.0.0自定義函式Hive函式
- Hive中自定義函式Hive函式
- python教程:自定義函式Python函式
- PHP內建字串函式實現PHP字串函式
- 字串相關函式的實現字串函式
- java自定義equals函式和hashCode函式Java函式
- 自定義資料型別資料型別
- C++分割字串,及strtok函式使用C++字串函式
- Perl split字串分割函式用法指南字串函式
- 建構函式定義的隱式型別轉換函式型別
- springboot jap自定義原生sql 接收SELECT count(*) 的返回long型別結果Spring BootSQL型別
- Hive函式(內建函式+自定義標準函式UDF)Hive函式
- Laravel 新增自定義助手函式Laravel函式
- laravel 自定義全域性函式Laravel函式
- Laravel 自定義函式存放位置Laravel函式
- Laravel自定義輔助函式Laravel函式
- FlinkSQL自定義函式開發SQL函式
- c++字串查詢函式實現C++字串函式
- ros|自定義訊息型別ROS型別
- DM自定義資料型別資料型別