社区
Oracle
帖子详情
怎么在 oracle 存储过程中 使用正则表达式!!!
dj9960
2004-10-13 03:32:20
打个比方我想把2:1中的2和1分别取出,怎么在 oracle 存储过程中 使用正则表达式把它取出!!!
...全文
465
11
打赏
收藏
怎么在 oracle 存储过程中 使用正则表达式!!!
打个比方我想把2:1中的2和1分别取出,怎么在 oracle 存储过程中 使用正则表达式把它取出!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
拆分字符串吗?
说的详细一点
在
Oracle
数据库
中
使用
正则表达式
本文介绍了
Oracle
数据库如何支持
正则表达式
,包括其SQL函数的
使用
,元字符的定义及其在搜索和操作字符串数据
中
的应用,以及如何构建和
使用
正则表达式
进行匹配和替换操作。,
Oracle
系列之十:
Oracle
正则表达式
本文介绍了
Oracle
数据库从9i版本开始引入的
正则表达式
支持,包括基本语法如字符匹配、限定符、边界匹配和分组,以及POSIX字符类的
使用
。同时,文
中
列举了
Oracle
提供的
正则表达式
函数,如REGEXP_LIKE、REGEXP_REPLACE、REGEXP_SUBSTR和REGEXP_INSTR,用于文本数据的匹配、替换和提取。这些工具在数据查询、分析和清洗
中
发挥着重要作用。
在
Oracle
中
使用
正则表达式
本文深入探讨
Oracle
数据库
中
四个关键
正则表达式
函数:regexp_like、regexp_substr、regexp_instr和regexp_replace的
使用
方法及实例。通过具体示例,详细解释了如何在
Oracle
中
运用这些函数进行字符串匹配、提取、定位和替换。
关于JAVA调用
ORACLE
存储过程
时,传入动态参数作为in语句条件的问题
本文探讨了在JAVA
中
调用
ORACLE
存储过程
时如何处理动态参数作为IN语句条件的挑战。需求是将多个参数如'1000','2000','3000','4000'等组合成一个字符串传入PROC_RPT110
存储过程
,并在内部作为IN查询条件执行。
存储过程
需能正确解析该参数以进行多值查询。
ORACLE
进阶(八)
存储过程
案例详解
本文介绍了一个具体的
Oracle
存储过程
实现案例,通过从CDEPDP表
中
获取旧机构号,查询CDETRADEEX_BAK表获取新机构号,并将新机构号附加到旧机构号之后。文章详细解释了
存储过程
的编写、调试及优化过程。
Oracle
17,134
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章