字符串分拆函数

来源:互联网 发布: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