中易网

oracle的split函数截取怎么返回成一行数据

答案:1  悬赏:10  
解决时间 2021-01-07 10:21
oracle的split函数截取怎么返回成一行数据
最佳答案
oracle的split函数截取如何返回成一行数据
CREATE OR REPLACe TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);

CREATE OR REPLACE FUNCTION split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN ty_str_split
IS
j INT := 0;
i INT := 1;
len INT := 0;
len1 INT := 0;
str VARCHAR2 (4000);
str_split ty_str_split := ty_str_split ();
BEGIN
len := LENGTH (p_str);
len1 := LENGTH (p_delimiter);

WHILE j < len
LOOP
j := INSTR (p_str, p_delimiter, i);

IF j = 0
THEN
j := len;
str := SUBSTr (p_str, i);
str_split.EXTEND;
str_split (str_split.COUNT) := str;

IF i >= len
THEN
EXIT;
END IF;
ELSE
str := SUBSTr (p_str, i, j - i);
i := j + len1;
str_split.EXTEND;
str_split (str_split.COUNT) := str;
END IF;
END LOOP;

RETURN str_split;
END split;
/

1.测试例子:

select * from table (split('a,b,c,sdf',','));

1 a
2 b
3 c
4 sdf
用这个函数进行截取的时候 返回的是多条 如何才能让他返回成一行呢?
a b c sdf
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
荷花出水甚英雄,被风打落在池中.想起意谋天下
天下都市新城这个地址在什么地方,我要处理点
昆山那里有食用二氧化炭?
哪个厂家的厢式电梯比较好
元字可以怎么组词
长城VV5顶配天窗能不能打开?
空压机380v电可是家里只有220v电怎么办
涨知识,为什么韶关车牌是粤F
言和Newborn·新生歌词
旅步户外运动用品专卖店怎么去啊,我要去那办
求真知当善人 求上联
谁能告诉我!今天绝地求生为啥玩不了?
说实话,众位吧友觉得周星驰的电影好在哪
中国高速公路有多少公里
我国陆地疆界线长约2万千米,大陆海岸线长约1
推荐资讯
如何预防溺水安全知识
谁有2006年火力全国悠悠球秀(央视少儿) 视屏
大佬们这个功放机是什么牌子?R声道没声音怎
36码鞋子长度为23CM 指的是鞋子的内经还是鞋
fifa2009的游戏简介
秦朝对历史发展有哪些巨大贡献?
人长得太帅怎么办 我是丑的哪种 所以很好奇那
这是谁,灵主里的
现在学VC++6还有没有前途
老人的钱存银行去世前怎样给子女合理
Don't ever let somebody tell you ! you
写给哥哥的唯美句子 感谢他对我的关心之类的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?