编写一个小函数字符串拼接 编写一个小函数输入条件为一字符串‘aaaa/bbb/cccc/ddd’把‘/’分割的且是四位字母的找出来,并重新拼接逗号分割。入上面结果应为:aaaa,cccc代码越短越好,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -- Created on 2011/7/22 by hohodeclare -- Local variables here str varchar2(50) := 'aaaa/bbb/cccc/ddd'; temp_str varchar2(30) := ''; v_split varchar2(5) := '/'; indexs integer; vresult varchar2(50) := '';begin while instr(str,v_split) > 0 loop indexs := instr(str,v_split); indexs:=indexs-1; temp_str := substr(str,1,indexs); if length(temp_str) = 4 then vresult := vresult ||','||temp_str; end if; indexs:=indexs+1; str:=substr(str,indexs+1); end loop; vresult := substr(vresult,2); dbms_output.put_line(vresult); end; 还少一个条件IF instr(str,v_split)=0 AND length(str)=4 --字符串自己替换一下就ok了[SYS@orcl] SQL>SELECT WM_CONCAT(A) 2 FROM (SELECT REGEXP_SUBSTR('aaaa/bbb/cccc/ddd', '[^/]+', 1, LEVEL) A 3 FROM DUAL 4 CONNECT BY LEVEL <= LENGTH('aaaa/bbb/cccc/ddd') - 5 LENGTH(REPLACE('aaaa/bbb/cccc/ddd', '/')) + 1) 6 WHERE REGEXP_LIKE(A, '[a-z|A-Z]{4}') 7 ;WM_CONCAT(A)--------------------------------------------------------------------------------aaaa,cccc oracle查询星期几的中文显示 oracle10G的问题: oracle 如何修改带时间的日期字段 日历周号计算 oracle 排他异常 的捕捉 求一条oracle sql 用户权限分配 如何跨越防火墙访问Oracle数据库? 如果我有一个date字段,如何当我插入一条记录的时候这个字段自动生成系统默认日期? 怎么在数据库里新建新用户、密码啊? 编写一个小函数字符串拼接 安装Oracle途中的一些问题
-- Created on 2011/7/22 by hoho
declare
-- Local variables here
str varchar2(50) := 'aaaa/bbb/cccc/ddd';
temp_str varchar2(30) := '';
v_split varchar2(5) := '/';
indexs integer;
vresult varchar2(50) := '';
begin
while instr(str,v_split) > 0
loop
indexs := instr(str,v_split);
indexs:=indexs-1;
temp_str := substr(str,1,indexs);
if length(temp_str) = 4
then
vresult := vresult ||','||temp_str;
end if;
indexs:=indexs+1;
str:=substr(str,indexs+1);
end loop;
vresult := substr(vresult,2);
dbms_output.put_line(vresult);
end;
--字符串自己替换一下就ok了
[SYS@orcl] SQL>SELECT WM_CONCAT(A)
2 FROM (SELECT REGEXP_SUBSTR('aaaa/bbb/cccc/ddd', '[^/]+', 1, LEVEL) A
3 FROM DUAL
4 CONNECT BY LEVEL <= LENGTH('aaaa/bbb/cccc/ddd') -
5 LENGTH(REPLACE('aaaa/bbb/cccc/ddd', '/')) + 1)
6 WHERE REGEXP_LIKE(A, '[a-z|A-Z]{4}')
7 ;WM_CONCAT(A)
--------------------------------------------------------------------------------
aaaa,cccc