获取时,Oracle 11g不显示磅符号

时间:2015-01-08 06:59:50

标签: oracle oracle11g

我使用Oracle 11g作为我的数据库。我正在更新表格如下:

UPDATE Discount_table SET discount_text='Minimum Commitment Charge - £500 - Discount' WHERE description_code=12345;

但数据库中的结果如下:

  

最低承诺费 - ¿500 - 折扣

我尝试为它提供nvarchar数据类型。但它的结果相同。需要做什么?

2 个答案:

答案 0 :(得分:1)

这主要是由于特定于语言环境的NLS字符集与数据库字符集之间的不匹配。否则,在OS环境变量中未正确设置NLS_LANG值。

按照此处所述的步骤Why are junk values/special characters/question marks displayed on my client?

检查特定于语言环境的NLS字符集:

select value from v$nls_parameters 
  where parameter = 'NLS_CHARACTERSET';

检查数据库字符集:

select value from nls_database_parameters 
  where parameter = 'NLS_CHARACTERSET';

如果您发现两者之间不匹配,则将特定于语言环境的NLS字符集设置为数据库字符集的字符集。

如果上述字符匹配,则需要在OS环境变量中设置NLS_LANG值。

对于Windows操作系统,格式为[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]

按照有关设置NLS_LANG的文档中的说明进行操作:Setting the NLS_LANG Environment Variable for Oracle Databases

答案 1 :(得分:-1)

您可以更改您的更新语句,如

UPDATE Discount_table SET discount_text='Minimum Commitment Charge - '||chr(163)||'500 - Discount' WHERE description_code=12345;

我认为这会帮助你获得英镑符号