2017-03-02 91 views
0

我的數據庫出現問題,出現字符€。 使用Oracle SQL Developer它可以正常工作。但是,如果我嘗試使用putty和sqlplus進行查詢,則不能識別字符€。字符€不適用於sqlplus

這表明未來的結果:

SQL> select column from table; 

column 
------------------------------------ 
10▒ 
------------------------------------ 
It should be 10€ 

如果一個SELECT嘗試用WHERE,如:

SQL> select column from table where column like '%€%'; 

no rows selected 

無論是在SQL SELECT開發商給出了正確的答案。

這裏是數據庫的配置:

PARAMETER    VALUE 
---------------------------------------------------------------- 
NLS_LANGUAGE   SPANISH     
NLS_TERRITORY   SPAIN     
NLS_CURRENCY   €      

NLS_ISO_CURRENCY  SPAIN     
NLS_NUMERIC_CHARACTERS ,.      
NLS_CALENDAR   GREGORIAN    

NLS_DATE_FORMAT   DD/MM/RR    
NLS_DATE_LANGUAGE  SPANISH     
NLS_CHARACTERSET  WE8MSWIN1252   

NLS_SORT    SPANISH     
NLS_TIME_FORMAT   HH24:MI:SSXFF   
NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF 

NLS_TIME_TZ_FORMAT  HH24:MI:SSXFF TZR  
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR          

NLS_DUAL_CURRENCY  €      

NLS_NCHAR_CHARACTERSET AL16UTF16    
NLS_COMP    BINARY     
NLS_LENGTH_SEMANTICS BYTE     

NLS_NCHAR_CONV_EXCP  FALSE 

這裏是服務器的配置:

> locale 
LANG=es_ES.UTF-8 
LC_COLLATE=C 
LC_CTYPE="es_ES.UTF-8" 
LC_MONETARY="es_ES.UTF-8" 
LC_NUMERIC="es_ES.UTF-8" 
LC_TIME="es_ES.UTF-8" 
LC_MESSAGES="es_ES.UTF-8" 
LC_ALL= 

> echo $NLS_LANG 
AMERICAN_AMERICA.WE8MSWIN1252 
+0

也許相關:[€歐元符號/符號沒有顯示在Oracle 10gR2中和AIX 6.1向上](http://dba.stackexchange.com/q/20016)。 – Filburt

+0

它存儲爲varchar2或nvarchar2;你可以查詢'dump(column,16)'和'dump('€',16)'來比較它們嗎? SQL Developer是否配置爲Win1252或UTF? (我懷疑爲字符集記錄了錯誤的代碼點,但主要是猜測......)。我不認爲這是鏈接答案中的問題,因爲您的數據庫字符集應該支持該符號 - 但您可能正在尋找錯誤的代碼點。 –

+0

它被存儲爲VARCHAR2(100 CHAR)。 –

回答

1

(發佈代表OP)的

這已解決。有膩子配置問題。

解決方案:

更改字符膩子翻譯選項卡上設置爲:贏1252(西方)。

Putty screenshot

相關問題