2011-05-20 56 views
2

我在我的表中有一個varchar字段,其​​中包含一個日期,格式爲:Dic 31 1999 12:00AM,通常可以使用to_date配置'Mon DD YYYY HH:MIAM'轉換而沒有任何問題。在Oracle中日期月份名稱語言?

月份名稱當然可以用任何語言。例如,1月份,英語爲Jan,西班牙語爲Ene

我認爲Oracle客戶端會拿起機器的語言環境來確定傳入字符串的語言。唯一的問題是,如果你是一個服務器,你不能真正知道日期來自哪裏,這並不總是奏效。

我目前的問題是,每次我在西班牙語的電腦上試着用英文命名月份來處理日期時,我會得到一個「無效的月份」錯誤。

有沒有我可以告訴Oracle,在執行時間,這是我發送的語言?

當前醜陋的解決方法是將不匹配的月份翻譯成西班牙語。

回答

4

您可以使用SELECT * FROM NLS_SESSION_PARAMETERS來確定您當前的語言設置(也存在NLS_INSTANCE_PARAMETERSNLS_DATABASE_PARAMETERS)。

使用NLS_*工作站上的環境變量或SQL會話中的ALTER SESSION語句更改這些語言設置。

0

ALTER SESSION可能工作。我不記得具體如何,但我知道你可以設置語言環境,日期樣式和數字格式。

0

您應該使用NLS_DATE_LANGUAGE爲:

select to_char(sysdate, 'dd Month, Day', 'NLS_DATE_LANGUAGE = turkish') from dual