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中写存储过程或函数完成
去掉此字段中记录中的 带有括号的内容,左括号 右括号 括号中的内容都去掉

请问如何实现,在线等
...全文
834 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的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, '[\(|(].+[\)|)]', '') ; 这个应该可以

17,377

社区成员

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

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