字符串分拆函数
来源:互联网 发布:mvp网络请求放在哪层 编辑:程序博客网 时间:2024/05/10 23:58
DROP TABLE t100/CREATE TABLE t100 AS SELECT LEVEL AS ID FROM dual CONNECT BY LEVEL <= 100/CREATE OR REPLACE TYPE VARCHAR2LIST AS TABLE OF VARCHAR2(200)/CREATE OR REPLACE FUNCTION F_SPLIT_STR(P_STR VARCHAR2, P_SPLIT VARCHAR2 := ',') RETURN VARCHAR2LIST AUTHID DEFINER AS V_TABLE VARCHAR2LIST; V_SPLIT VARCHAR2(10) := '[^' || P_SPLIT || ']+'; V_COUNT INT := REGEXP_COUNT(P_STR, P_SPLIT) + 1;BEGIN SELECT REGEXP_SUBSTR(P_STR, V_SPLIT, 1, T100.ID) AS COL BULK COLLECT INTO V_TABLE FROM T100 WHERE T100.ID <= V_COUNT; RETURN V_TABLE;END;/SQL> SELECT * FROM TABLE(F_SPLIT_STR('1,2,23,5'));COLUMN_VAL----------12235