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
也許相關:[€歐元符號/符號沒有顯示在Oracle 10gR2中和AIX 6.1向上](http://dba.stackexchange.com/q/20016)。 – Filburt
它存儲爲varchar2或nvarchar2;你可以查詢'dump(column,16)'和'dump('€',16)'來比較它們嗎? SQL Developer是否配置爲Win1252或UTF? (我懷疑爲字符集記錄了錯誤的代碼點,但主要是猜測......)。我不認爲這是鏈接答案中的問題,因爲您的數據庫字符集應該支持該符號 - 但您可能正在尋找錯誤的代碼點。 –
它被存儲爲VARCHAR2(100 CHAR)。 –