在 Oracle SQL/PL-SQL 中将德语特殊字符转换为英语等效字符 [英] Converting German special characters to English equivalent one in Oracle SQL / PL-SQL

查看:55
本文介绍了在 Oracle SQL/PL-SQL 中将德语特殊字符转换为英语等效字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将表中某一列的所有德语字符替换为相应的英语字符.当我尝试使用 Replace() 函数时,它没有返回富有成效的结果.我想将所有德语特殊字符(如 Ä Ö Ü ö ä ü ß)替换为 Ae Oe Ue oe ae ue ss.请让我知道如何执行?我需要更改任何数据库设置吗?

I want to replace all German characters of a column of a table to corresponding English characters. When I tried with Replace() function it is not returning fruitful result. I want to replace all German special characters like- Ä Ö Ü ö ä ü ß to Ae Oe Ue oe ae ue ss. Please let me know how to perform that? Do I need to change any DB settings?

请在下面找到一些结果:

Please find some results below:

select replace('a b c d e ä f g ö','ä','ae') from dual;
Output:


REPLACE('ABCDEDFGV','D','AE')
a b c ae e ae f g v

我使用 Toad 作为数据库工具.下面是几个数据库参数:

I am using Toad as DB tool. below are few DB parameters:

PARAMETER VALUE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8ISO8859P1
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE GERMAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_RDBMS_VERSION 9.2.0.5.0
NLS_SAVED_NCHAR_CS WE8ISO8859P1

推荐答案

结果有什么问题?它将ä 替换为ae.现在对所有其他字符重复.... 因为 replace 只会用另一个替换 1 个序列,所以你会得到很多嵌套的替换.

What's wrong with the result? It replaces ä with ae. Now repeat for all other characters.... Since replace will only replace 1 sequence with another you will get a lot of nested replaces.

select replace(replace('a b c d e ä f g ö','ä','ae'),'ö','oe') from dual

这篇关于在 Oracle SQL/PL-SQL 中将德语特殊字符转换为英语等效字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆