oracle 如何拆分字符串
我这有个表A记录:idbm111王一,王二想拆分bm为单个记录:111王一111王二请问谁知道怎么弄啊,非常感谢...
我这有个表A
记录:id bm
111 王一,王二
想拆分bm为单个记录:
111 王一
111 王二
请问谁知道怎么弄啊,非常感谢 展开
记录:id bm
111 王一,王二
想拆分bm为单个记录:
111 王一
111 王二
请问谁知道怎么弄啊,非常感谢 展开
1个回答
2014-12-05
展开全部
创建与A相同结构的表A_temp
create or replace procedure busi_bm is
lstr varchar2(1000);
ln number;
mid a_test.id%type;
m_bm a_test.bm%type;
begin
for rec_dia in (select *
from a_test t) loop
if rec_dia.bm = replace(rec_dia.bm, ',') then
--只有一个值
insert into a_test_temp values(rec_dia.id,rec_dia.bm);
commit;
else
lstr := rec_dia.bm || ',';
loop
ln := instr(lstr, ',');--第一个逗号的索引 a,b,c
exit when(nvl(ln, 0) = 0);--没有逗号了,退出
m_bm := ltrim(rtrim(substr(lstr, 1, ln - 1)));--获得a
lstr := substr(lstr, ln + 1);--b,c
insert into a_test_temp values(rec_dia.id,m_bm);
commit;
end loop;
end if;
end loop;
end busi_bm;
执行上面的存储过程,写入到A_TEMP表。记得到了你要的结果。
记得采纳!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询