龙空技术网

oracle 字段分隔符转多行

无名有道 195

前言:

此时大家对“oracle替换逗号”大约比较注意,我们都需要知道一些“oracle替换逗号”的相关资讯。那么小编也在网络上汇集了一些关于“oracle替换逗号””的相关知识,希望朋友们能喜欢,同学们快快来学习一下吧!

需求:Oracle数据库的一行里的字段需要按照逗号拆分为多行

实现方式:

创建自定义函数实现

1、创建类型

CREATE OR REPLACE TYPE TYPE_SPLIT IS TABLE OF VARCHAR2 (4000);

2、创建函数

CREATE OR REPLACE FUNCTION SPLIT(P_STRING VARCHAR2, P_SEP VARCHAR2 := ',')RETURN TYPE_SPLITPIPELINED ISIDX PLS_INTEGER;V_STRING VARCHAR2(4000) := P_STRING;BEGINLOOPIDX := INSTR(V_STRING, P_SEP);IF IDX > 0 THENPIPE ROW(SUBSTR(V_STRING, 1, IDX - 1));V_STRING := SUBSTR(V_STRING, IDX + LENGTH(P_SEP));ELSEPIPE ROW(V_STRING);EXIT;END IF;END LOOP;END;

3、使用函数

select * FROM tmp t,table(split(t.zrrbid, ',')) t1

效果如下:

标签: #oracle替换逗号 #oracle 多行数据合并成一行 #oracle一行拆多行 #oracle 一行拆分多行