Oracle SQL是否有无需指定映射即可转换本地化字符为基础英文字符的函数?
解决方案
Oracle数据库内置的UTL_I18N.TRANSLITERATE函数可以满足你的需求:无需手动指定字符映射关系,就能将任意语言字符转换为26个英文字母,还支持特定语言的精准转换规则(比如把ß转为ss、ö转为oe)。
基础转换示例
直接调用函数即可完成通用转写:
SELECT UTL_I18N.TRANSLITERATE('Hände') FROM DUAL; -- 输出结果: Hande
精准语言规则转换
如果需要贴合特定语言的转换逻辑(比如德语特殊字符处理),可以指定对应语言的规则参数:
SELECT UTL_I18N.TRANSLITERATE('Straße', 'GERMAN') FROM DUAL; -- 输出结果: Strasse SELECT UTL_I18N.TRANSLITERATE('Möbel', 'GERMAN') FROM DUAL; -- 输出结果: Moebel
该函数内置了多种语言的预定义转换规则,覆盖绝大多数常见特殊字符的映射需求,完全不用编写冗长的TRANSLATE/REPLACE语句,也无需自定义数据库函数。
内容的提问来源于stack exchange,提问作者Felipe Vidal
相关产品推荐
相关产品推荐

