2016-01-25 37 views
3

將值插入Oracle數據庫時遇到問題。我必須插入法文字符,如àè,當我嘗試通過INSERT語句插入它們時,它會將字符轉換爲¿?Oracle數據庫中的編碼

有沒有可能設置該特定腳本的編碼,或者我可以在這種情況下做什麼?

謝謝

+2

列數據類型? – jarlh

+4

檢查客戶端NLS_LANG設置,確保它設置爲檢索法語字符。 –

+0

@haytem - 它設置爲American_America.WE8ISO8859P1。問題是,當客戶端插入值時,它會正確插入它們,但是當我們從開發環境中執行時,值將被編碼。 – Sebastian

回答

1

我已經通過添加名爲NLS_LANG的值爲.AL32UTF8的環境變量來解決此問題。即使數據庫具有美國和美國地區的語言,這也是有效的。我在這裏面臨的問題是,一旦我改變了NLS_LANG變量,它就開始在應用程序中對我的字符進行編碼。

此外,您可以嘗試更改您正在運行的腳本的編碼。例如,我使用ANSI編碼(可以通過在記事本++中打開腳本並從編碼菜單中選擇轉換爲ANSI來實現),並且它工作正常。

謝謝你們的幫助:)

+1

語言和領土有**沒有什麼**與字符可以存儲在數據庫中的能力或哪些字符可以是由客戶端應用程序顯示。語言和地域與平日或月份的名稱,排序規則,日曆設置,錯誤消息的語言等有關。 –

1

通常您會在安裝數據庫時設置字符集。但是,如果需要,您可以在安裝後更改它(查看CSALTER)。如果你的數據庫需要支持多種語言,那麼你應該看看這個:Supporting Multilingual Databases with Unicode

+0

謝謝,但我不能這樣做,這是客戶端數據庫,我不能改變它 – Sebastian