由于oracle中不自带split分割函数,导致很多情况下需要做字符串分割时束手无策,
下面介绍一个可用的方法 。
----首先定义一个type类型type_split_a
create or replace type type_split_a is table of varchar2 (4000);
----定义函数,返回一个管道化的返回值
【oracle中split函数构建】function split(p_string varchar2, p_sep varchar2 := ',')
return type_split_a
pipelined is
idx pls_integer;
v_string varchar2(4000) := p_string;
begin
loop
idx := instr(v_string, p_sep);
if idx > 0 then
pipe row(substr(v_string, 1, idx - 1));
v_string := substr(v_string, idx + length(p_sep));
else
pipe row(v_string);
exit;
end if;
end loop;
end split_a;
---该返回值可以看成一个虚表,我们使用时利用table显示的查询即可
select * from table(split('古力娜扎#迪丽热巴#玛尔扎哈','#'));
查询结果如下:
文章插图
推荐阅读
- 人工智能应用火热,AI中台建设势不可挡
- 茶园培育与采摘,都匀螺丝壳茶园景观入选2013年中国美丽田园,都匀螺丝壳茶园
- 基于云落地SLB+Tengine实现高可用集群负载均衡 - 中
- CentOS 7中常用的基础命令
- 关于Oracle数据库12c 新特性总结
- 鸡蛋保鲜温度多少
- 集中隔离14天费用大概多少钱?
- 2021中国首富十大排名是怎样的?
- 阐述中国茶道文化,麻省理工学院学生在天津财经大学体验中国茶艺
- 冲泡普洱茶的四个要素,普洱茶中存在多种活性成分