深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 555|回复: 0
打印 上一主题 下一主题

oracle分割字符串后以单列多行展示

[复制链接]

104

主题

171

帖子

1177

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1177
跳转到指定楼层
楼主
发表于 2019-7-11 11:35:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前采用的方案:


  1. create or replace type type_split as table of varchar2(4000);

  2. create or replace function test_split(p_list VARCHAR2, p_sep VARCHAR2) return type_split
  3.   PIPELINED IS
  4.   l_idx  PLS_INTEGER;
  5.   v_list VARCHAR2(32767) := p_list;
  6. begin
  7.   LOOP
  8.     l_idx := instr(v_list, p_sep);
  9.     IF l_idx > 0 THEN
  10.       PIPE ROW(substr(v_list, 1, l_idx - 1));
  11.       v_list := substr(v_list, l_idx + length(p_sep));
  12.     ELSE
  13.       PIPE ROW(v_list);
  14.       EXIT;
  15.     END IF;
  16.   END LOOP;
  17.   RETURN;
  18. end test_split;
复制代码



SELECT * FROM table(test_split('P071813,P071814,P071815',','))
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 00:00 , Processed in 0.023965 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表