2

我目前有一个任务,我必须处理来自很多国家的数据。我的客户给了我一个可接受的字符列表,我们称之为:

'阿伯 =*'

所有其他字符都应更改为“_”。

我知道我的国家特定字符(æøå)的转换,很容易用类似的东西完成

select replace ('Ål', 'Å', 'AA') from dual;

但是我将如何去除所有不需要的“噪音”而不将其拆分为逐个字符的比较?

例如,“bear*2 = fear”应该变成“bear*_ = _ear”,因为 2 和 f 不在接受列表中。

4

1 回答 1

0

Oracle 10g 及更高版本。作为其中一种方法,您可以使用正则表达式函数regexp_replace()

select regexp_replace('bear*2 = fear', '[^aber =*]', '_') as res
  from dual


res
------------------------------
bear*_ = _ear

了解有关regexp_replace()功能的更多信息。

于 2013-09-16T14:56:37.360 回答