由于Oracle中没有分割字符串的函数所以需要手动编写函数实现
1.创建TYPE类型
CREATE OR REPLACE TYPE TYPE_SPLIT AS TABLE OF VARCHAR2 (4000);
2.创建函数spit()
CREATE OR REPLACE FUNCTION SPLIT(SPLIT_STRING VARCHAR2,SPLIT_DELIMITER VARCHAR2:=',')
RETURN TYPE_SPLIT
PIPELINED IS
IDX PLS_INTEGER;
V_STRING VARCHAR2(4000):=SPLIT_STRING;
BEGIN
LOOP
IDX:=INSTR(V_STRING,SPLIT_DELIMITER);
IF IDX>0 THEN
PIPE ROW(SUBSTR(V_STRING,1,IDX-1));
V_STRING:= SUBSTR(V_STRING,IDX + LENGTH(SPLIT_DELIMITER));
ELSE
PIPE ROW(V_STRING);
EXIT;
END IF;
END LOOP;
END;
3.实现效果
转载至博客园 源地址下方