2011-05-18 160 views
1

我在oracle 11g中遇到了希臘字符的問題。它只顯示一些希臘字符和所有其他'?'。我已經完成了上述所有事情,我在互聯網上找到了,但無法解決這個問題。oracle中的希臘字符集

我使用win vista(rus/eng版本)並設置希臘mui。我已經將註冊表中的NLS_LANG更改爲EL8MSWIN1253(我改變了這種情況),我的系統nls_lang在註冊表中也是1253。

當我打電話:

SELECT * FROM NLS_INSTANSE_PARAMETERS 

我得到NLS_LANGUAGE=AMERICANNLS_TERRITORY=AMERICA。我設置了Unicode字符集的oracle。

席力圖召

ALTER SESSION SET NLS_LANG=GREEK_GREECE.EL8MSWIN1253 

,但沒有奏效。當我打電話

ALTER SESSION SET NLS_LANGUAGE=GREEK 

ALTER SESSION SET NLS_TERRITORY=GREECE 

Oracle說 「會話改變」,但沒有任何變化。

任何人都可以幫我嗎?

回答

0

您是否在註冊表中設置了NLS_LANG爲.EL8MSWIN1253(注意前綴點)?

NLS_LANG的格式是這樣的:

NLS_LANG = language_territory.charset 

...和Oracle® Database Globalization Support Guide manual寫道:

的NLS_LANG 定義的所有部件都是可選的;任何 未指定的項目都使用其默認的 值。 如果指定地區或 字符集,則必須包括 前定界符 [下劃線 (_)爲領土,句號(。)對 字符集]。否則,值 被解析爲語言名稱。

+0

你是說我應該在NLS_LANG中編寫.EL8MSWIN1253?我沒有這樣做。我會認真的。謝謝安德斯 – 2011-05-18 14:45:14

+0

我檢查了這一點,我正在寫:GREEK_GREECE.EL8MSWIN1253,這不正確嗎? – 2011-05-18 14:46:42

+0

我認爲這是放在註冊表中的正確值,是的。 – 2011-05-18 14:50:41

0

只是指出字符集轉換髮生在兩個方面。因此,如果客戶端在他們的數據庫會話指示美式字符集時插入「希臘」字符,則該字符將從美國轉換爲UTF-8(或任何DB字符集)。隨後使用希臘字符集進行會話選擇將導致字符從UTF-8轉換爲希臘語,這可能不是您開始使用的。

使用select DUMP(col)來查看他們記錄在數據庫中的字節,然後可以計算出數據庫是否具有正確的字符表示。

0

右鍵點擊我的電腦>高級系統設置>高級>環境變量

點擊系統變量的新標籤

變量名稱上:NLS_LANG 變量值:GREEK_GREECE.EL8MSWIN1253

變量名:NLS_NUMERIC_CHARACTERS 變量值:。,