Oracle / SQL - 从字符串中删除未定义的字符

时间:2013-09-16 14:48:28

标签: string oracle replace

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

'aber = *'

所有其他字符只需更改为“_”。

我知道我国的特定字符(æøå)的转换,很容易用

之类的东西完成
select replace ('Ål', 'Å', 'AA') from dual;

但是我怎样才能去除所有不需要的“噪音”,而不是在逐个字符比较中将它拆分?

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

1 个答案:

答案 0 :(得分:0)

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

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


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

Find out有关regexp_replace()功能的更多信息。