博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle小应用
阅读量:6758 次
发布时间:2019-06-26

本文共 1069 字,大约阅读时间需要 3 分钟。

  hot3.png

先声明:转载的博客:

解读是自己做的

创建类

CREATE OR REPLACE TYPE mytable AS TABLE OF varchar2(500);/

创建函数

CREATE OR REPLACE FUNCTION SEND_SPLIT (src VARCHAR2, delimiter varchar2)   RETURN mytable IS   psrc VARCHAR2(500);   a mytable := mytable();   i NUMBER := 1;   j NUMBER := 1; BEGIN   psrc := RTrim(LTrim(src, delimiter), delimiter);   LOOP     i := InStr(psrc, delimiter, j);     --Dbms_Output.put_line(i);     IF i>0 THEN       a.extend;       a(a.Count) := Trim(SubStr(psrc, j, i-j));       j := i+1;       --Dbms_Output.put_line(a(a.Count-1));     END IF;     EXIT WHEN i=0;   END LOOP;   IF j <= Length(psrc) THEN     a.extend;     a(a.Count) := Trim(SubStr(psrc, j, Length(psrc)+1-j));   END IF;   RETURN a; END; /

测试:

select ci_id,wm_concat(stu_name) from(SELECT s.stu_name, c.ci_id FROM pm_stu s, pm_ci c WHERE stu_id in (SELECT * FROM TABLE(CAST(SEND_SPLIT(c.stu_ids, ',')AS mytable)))order by stu_id)group by ci_id/

结果:

CI_ID                WM_CONCAT(STU_NAME)

--------------- ------------------------------------
1                    张三,李四,赵六,王五
2                    张三,赵六

函数解读:

 

转载于:https://my.oschina.net/xiaogezi/blog/670371

你可能感兴趣的文章
iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用...
查看>>
微服务架构设计纲要
查看>>
看阿里P9架构师如何向你定义架构及架构师
查看>>
一个简单的幂等工具类实现
查看>>
当class properties遇上decorator
查看>>
Java基础笔记02
查看>>
【iOS】苹果IAP(内购)中沙盒账号使用注意事项
查看>>
flask 源码解析
查看>>
快速搭建Hexo博客+webhook自动部署+全站HTTPS
查看>>
laravel发送激活邮件的思路和问题
查看>>
iOS 在主线程操作UI不能保证安全
查看>>
设计模式学习之适配器模式
查看>>
【Lolttery】项目开发日志 (四)dubbo初战
查看>>
Javascript 闭包并非魔法
查看>>
一个RecyclerView实现多级折叠列表(二)
查看>>
如何使用image-set适配移动端高清屏图片
查看>>
Java并发6:阻塞队列,Fork/Join框架
查看>>
在JavaScript中理解策略模式
查看>>
云存储对象存储管理与安全
查看>>
ES6迭代器生成器
查看>>