删除ORACLE 10g中重复的并发字符

时间:2015-07-23 12:04:55

标签: sql oracle replace oracle10g regexp-replace

我在Oracle 10g中有一个聚合的varchar2列,其中包含已完成的扫描。一个例子是:

My_Column
XOABOABOABOABOABOABOABUX

我需要删除重复的并发字符,即。我需要将上面的字符串转换为:

pg_dump

我需要保存每个角色的相对顺序 我怎么能这样做?

我正在考虑使用嵌套的REPLACE()函数来清理字符串,但我正在寻找一种不那么混乱的替代方案

1 个答案:

答案 0 :(得分:2)

您可以使用 REGEXP_REPLACE

例如,

SQL> WITH DATA(str) AS(
  2  SELECT 'XXXOABBOABBBBOABBBOABBBOABBBOABBBOOABUXXX' FROM dual
  3  )
  4  SELECT str, regexp_replace(str, '(.)\1+','\1') new_str FROM DATA;

STR                                       NEW_STR
----------------------------------------- ----------------------------
XXXOABBOABBBBOABBBOABBBOABBBOABBBOOABUXXX XOABOABOABOABOABOABOABUX

SQL>