PL/SQL 中字符串解析问题

zzwind5 2005-04-22 04:19:44
declare
addr varchar2(200):='城市名-街道名-门牌号';
city varchar2(200);
road varchar2(200);
num varchar2(200);
begin
null;
end;
现在要完成把地址中的城市名字放到 变量 CITY 中
街道名字放到 变量 ROAD 中
门牌号放到 变量 NUM 中
城市,街道,门牌号 的字符长度是不一定了。
请各位大侠实例解答。
谢谢~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...全文
162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
angeldalian 2005-04-25
  • 打赏
  • 举报
回复
打错了,应该是INSTR和SUBSTR,不好意思
angeldalian 2005-04-25
  • 打赏
  • 举报
回复
用STRIN和SUBSTR应该就能解决吧,不知道还有没有其它的好方法!
baojianjun 2005-04-25
  • 打赏
  • 举报
回复
SQL> declare
2 addr varchar2(200):='城市名-街道名-門牌號';
3 city varchar2(200);
4 road varchar2(200);
5 num varchar2(200);
6 begin
7 city := substr(addr,1,instr(addr,'-')-1);
8 addr := substr(addr,instr(addr,'-')+1,length(addr));
9
10 road := substr(addr,1,instr(addr,'-')-1);
11 num := substr(addr,instr(addr,'-')+1,length(addr));
12
13 dbms_output.put_line('city is:'||city||',road is:'||road||',num is:'||num);
14 end;
15 /
city is:城市名,road is:街道名,num is:門牌號

PL/SQL 程序順利完成

目前歷時: 00:00:00.16
newboy3205579 2005-04-24
  • 打赏
  • 举报
回复
select substr('西安市-兴庆路-100号',0,instr('西安市-兴庆路-100号','-',1,1)-1) city ,
substr('西安市-兴庆路-100号',instr('西安市-兴庆路-100号','-',1,1)+1,instr('西安市-兴庆路-100号','-',1,1)-1),
substr('西安市-兴庆路-100号',instr('西安市-兴庆路-100号','-',1,2)+1,instr('西安市-兴庆路-100号','-',1,1))
from dual
Alkeen 2005-04-22
  • 打赏
  • 举报
回复
如下三句赋值即可
city:= SUBSTR(addr,1,INSTR(addr,'-',1,1)-1);
road:= SUBSTR(addr,INSTR(addr,'-',1,1)+1,INSTR(addr,'-',1,2)-INSTR(addr,'-',1,1)-1)
num := SUBSTR(addr,INSTR(addr,'-',1,2)+1,LENGTH(addr)-INSTR(addr,'-',1,2))

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧