社区
Oracle
帖子详情
怎么在 oracle 存储过程中 使用正则表达式!!!
dj9960
2004-10-13 03:32:20
打个比方我想把2:1中的2和1分别取出,怎么在 oracle 存储过程中 使用正则表达式把它取出!!!
...全文
441
11
打赏
收藏
怎么在 oracle 存储过程中 使用正则表达式!!!
打个比方我想把2:1中的2和1分别取出,怎么在 oracle 存储过程中 使用正则表达式把它取出!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dj9960
2004-10-13
打赏
举报
回复
解决了,谢谢大家!!!
bzszp
2004-10-13
打赏
举报
回复
长度不是问题
15:53:00 SQL> declare
15:55:16 2 v_str varchar2(50):='1:341:3534:sefef:jtyj';
15:55:32 3 v_num number;
15:55:35 4 v_temp varchar2(10);
15:55:35 5 begin
15:55:35 6 for i in 1..length(v_str)-length(replace(translate(v_str,':',' '),' ','')) loop
15:55:35 7 v_temp:=substr(v_str,1,instr(v_str,':')-1);
15:55:35 8 v_str:=substr(v_str,instr(v_str,':')+1);
15:55:35 9 dbms_output.put_line(v_temp);
15:55:35 10 end loop;
15:55:35 11 dbms_output.put_line(v_str);
15:55:35 12 end;
15:55:35 13 /
1
341
3534
sefef
jtyj
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.31
15:55:35 SQL>
不知道你的用途
flamingo100
2004-10-13
打赏
举报
回复
先用instr找到:的位置,然后再利用substr()和length()截取
bzszp
2004-10-13
打赏
举报
回复
15:52:55 SQL> declare
15:52:58 2 v_str varchar2(50):='1:2:3:4:5';
15:52:58 3 v_num number;
15:52:58 4 v_temp varchar2(10);
15:52:58 5 begin
15:52:58 6 for i in 1..length(v_str)-length(replace(translate(v_str,':',' '),' ','')) loop
15:52:58 7 v_temp:=substr(v_str,1,instr(v_str,':')-1);
15:52:58 8 v_str:=substr(v_str,instr(v_str,':')+1);
15:52:58 9 dbms_output.put_line(v_temp);
15:52:58 10 end loop;
15:52:58 11 dbms_output.put_line(v_str);
15:52:59 12 end;
15:53:00 13 /
1
2
3
4
5
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.47
15:53:00 SQL>
zmgowin
2004-10-13
打赏
举报
回复
正则表达式的写法不会
zmgowin
2004-10-13
打赏
举报
回复
15:54:48 SQL> select * from t1;
A
----------
10:5
10:50
1:50
1:5
已用时间: 00: 00: 00.15
15:54:52 SQL> select substr(a,1,instr(a,':')-1) a,substr(a,instr(a,':')+1,length
(a)) b from t1;
A B
---------- ----------
10 5
10 50
1 50
1 5
已用时间: 00: 00: 00.15
dj9960
2004-10-13
打赏
举报
回复
呵呵,不行,:前后的数值长度不一样如果是10:1怎么办!!!,那个字段里有几万条类似于这样的数据!!!
bzszp
2004-10-13
打赏
举报
回复
15:45:11 SQL> select substr('2:1:3',instr('2:1:3',':',2)+1,
15:45:14 2 instr('2:1:3',':',3)-instr('2:1:3',':',2)-1) from dual;
S
-
1
已用时间: 00: 00: 00.15
15:45:19 SQL> select substr('2:1:3',1,instr('2:1:3',':')-1) from dual;
S
-
2
已用时间: 00: 00: 00.15
15:45:36 SQL> select substr('2:1:3',instr('2:1:3',':',2)+1,
15:45:38 2 instr('2:1:3',':',3)-instr('2:1:3',':',2)-1) from dual;
S
-
1
已用时间: 00: 00: 00.16
15:45:56 SQL> select substr('2:1:3',instr('2:1:3',':',3)+1) from dual;
S
-
3
已用时间: 00: 00: 00.16
15:46:02 SQL>
sywen
2004-10-13
打赏
举报
回复
用substr()函数不就行了吗
dj9960
2004-10-13
打赏
举报
回复
是的,把2:1 拆分成2和1
bzszp
2004-10-13
打赏
举报
回复
拆分字符串吗?
说的详细一点
ibatis例子加教程&java&javascript&dhtml&
正则表达式
工具
ibatis例子加教程&java&javascript&dhtml&
正则表达式
工具
数据库
中
使用
正则表达式
小结
主要介绍了数据库
中
使用
正则表达式
小结的相关资料,需要的朋友可以参考下
帮助文档集合(SQL.chm,XML 指南.chm,
正则表达式
系统教程.CHM)
帮助文档集合 SQL.chm, XML 指南.chm,
正则表达式
系统教程.CHM
oracle
约束和索引笔记
自己看视频做的笔记,以后再更新,虽然内容很少,但是一看就懂。我也是菜鸟,所以笔记都是菜鸟笔记
orcl_reg.zip_
oracle
10G
oracle
10g
正则表达式
,学习
正则表达式
非常好用!!值得收藏学习。
Oracle
17,140
社区成员
55,259
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章