各位:请问如何将“盐田区|龙岗区|宝安区|南山区|福田区|罗湖区”
求出上面字符串出现|的个数
并把各个区分开
结果如下
盐田
龙岗
拜谢
求出上面字符串出现|的个数
并把各个区分开
结果如下
盐田
龙岗
拜谢
解决方案 »
- oracle developer中调用返回游标的过程
- 如何得到一个sql语句中子查询语句执行的次数
- 请教各位大侠,在程序中联接 oralce 数据库执行一些SQL语句,程序无返回值,一直在执行?
- 请大家看下
- 為何我的Oracle Management Server啟動不了?
- 如何显示保存在oracle中的类型为BLOB的JPG图片? 急!!!
- 请教这个sql语句怎么写
- 请问linux下有没有免费的Oracle ODBC驱动??
- 哪里有《oracle8 完全参考手册》(机械工业出版社)的电子版下载 要多少分都成啊
- oracle
- 如何在查询中把查询出来的三条记录的结果合并显示?
- 数据库之家,欢迎业界朋友加入!群号:85545461
l_tab DBMS_UTILITY.uncl_array;
l_tablen NUMBER;
l_list VARCHAR2 (1000);
BEGIN
l_list := p_str;
l_list := replace(p_str,'|',','); DBMS_UTILITY.comma_to_table (l_list, l_tablen, l_tab);
DBMS_OUTPUT.PUT_LINE(l_tablen); for i in 1..l_tablen loop
dbms_output.put_line(l_tab(i));
end loop;END;
/
然后exec show_string_info('盐田区|龙岗区|宝安区|南山区|福田区|罗湖区')
declare
vStr varchar2(200);
vStr1 varchar2(100);
begin
vStr := '盐田区|龙岗区|宝安区|南山区|福田区|罗湖区';
if instr(vStr,'|',1)>0 then
while instr(vStr,'|',1)>0 loop
select substr(vStr,1,instr(vStr,'|',1)-1),
substr(vStr,instr(vStr,'|',1)+1,length(vStr)-instr(vStr,'|',1)) into vStr1,vStr from dual;
dbms_output.put_line(vStr1);
end loop;
dbms_output.put_line(vStr);
else
dbms_output.put_line(vStr);
end if;
end;
--iStr 输入的字符串,pStr 分隔符
create or replace procedure P_ListStr(iStr varchar2,pStr varchar2)
as
vStr varchar2(1000);
vStr1 varchar2(100);
begin
vStr := iStr;
if instr(vStr,pStr,1)>0 then
while instr(vStr,pStr,1)>0 loop
select substr(vStr,1,instr(vStr,pStr,1)-1),
substr(vStr,instr(vStr,pStr,1)+1,length(vStr)-instr(vStr,pStr,1)) into vStr1,vStr from dual;
dbms_output.put_line(vStr1);
end loop;
dbms_output.put_line(vStr);
else
dbms_output.put_line(vStr);
end if;
end;执行结果:
zxf2@ORCL> exec p_listStr('盐田区|龙岗区|宝安区|南山区|福田区|罗湖区','|');
盐田区
龙岗区
宝安区
南山区
福田区
罗湖区PL/SQL 过程已成功完成。