oracle中,去掉记录中的带有括号中的内容,在线等

zgycsmb 2017-06-24 08:42:55

oracle中有一个表,表名 tab

表中path字段中有些这样的记录

192.168.10.1(echo),192.168.1.21
192.168.10.2
192.168.10.1(echo)
192.168.10.1(echo),192.168.1.21(ech1),192.168.1.22


现须在oracle中写存储过程或函数完成
去掉此字段中记录中的 带有括号的内容,左括号 右括号 括号中的内容都去掉

请问如何实现,在线等
...全文
362 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
卖水果的net 2017-06-24

-- 试试正则表达式

SQL> 
SQL> create table test(path varchar(52));
Table created
SQL> begin
  2      insert into test values('192.168.10.1(echo),192.168.1.21');
  3      insert into test values('192.168.10.2');
  4      insert into test values('192.168.10.1(echo)');
  5      insert into test values('192.168.10.1(echo),192.168.1.21(ech1),192.168.1.22');
  6  end;
  7  /
PL/SQL procedure successfully completed
SQL> select path, regexp_replace(path, '[\(].+[\)]', '') newpath from test;
PATH                                                 NEWPATH
---------------------------------------------------- --------------------------------------------------------------------------------
192.168.10.1(echo),192.168.1.21                      192.168.10.1,192.168.1.21
192.168.10.2                                         192.168.10.2
192.168.10.1(echo)                                   192.168.10.1
192.168.10.1(echo),192.168.1.21(ech1),192.168.1.22  192.168.10.1,192.168.1.22
SQL> drop table test purge;
Table dropped

SQL> 
  • 打赏
  • 举报
回复
zgycsmb 2017-06-24
update tabb set path=regexp_replace(path, '[\(|(].+[\)|)]', '') ; 这个应该可以
  • 打赏
  • 举报
回复
相关推荐
发帖
基础和管理
加入

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2017-06-24 08:42
社区公告
暂无公告