龙空技术网

oracle 字段分隔符转多行

无名有道 263

前言:

今天咱们对“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字段查询