2014-01-22 127 views
0

我的當前應用程序使用NLS_lang作爲American.america在Oracle表單上運行。我們正在計劃使這個應用程序可用於多語言。我們正在修改代碼以處理應用程序標籤,提示,提示,消息等運行時。我們不想更改時間/日期格式並將其保留在American.america中。但是,例如,當我將NLS_lang更改爲French_canadian或其他任何內容時。隨着語言的日期格式和日期語言參數正在改變。我需要更改NLS_lang,因爲這是我可以翻譯oracle錯誤消息的唯一方式。但是我的日期格式在Oracle DB中有DD-MON-YYYY格式,這在我的weblogic sesssion中造成了一個問題。是否有辦法將我的表單的weblogic會話更改爲French_canadian,但在美國留下日期格式/日期格式語言?我們能做到這一點嗎?除語言其他參數保持與美國相同?請幫忙。多語言的NLS設置

提前感謝您的時間和寶貴的想法...

回答

0

您可以設置語言和日期/時間格式獨立。 看一看這些參數:

  • NLS_DATE_FORMAT
  • NLS_DATE_LANGUAGE
  • NLS_LANGUAGE
  • NLS_TERRITORY
  • NLS_NUMERIC_CHARACTERS

NLS_LANG用來定義所有這些默認的,但每個他們可以不同。 隨着NLS_TERRITORY可以常用設置 「NLS_DATE_FORMAT」, 「NLS_NUMERIC_CHARACTERS」, 「NLS_CURRENCY」 和 「NLS_ISO_CURRENCY」

見這裏的例子:

ALTER SESSION SET NLS_TERRITORY = 'germany'; 
ALTER SESSION SET NLS_LANGUAGE = 'polish'; 
ALTER SESSION SET NLS_DATE_LANGUAGE = 'french'; 

SELECT SYSDATE AS german_date_format, TO_CHAR(SYSDATE, 'Day') AS french_day FROM dual; 
SELECT 1/0 AS polish_error_message FROM dual; 

GERMAN_DATE_FORMAT FRENCH_DAY 
-------------------------------- 
23.01.14    Jeudi 


SELECT 1/0 AS polish_error_message FROM dual 
       * 
Error at line 1 
ORA-01476: dzielnik jest równy zero 
+0

即使執行ALTER SESSION命令,日期在局部變量後表單正在以多語言集的格式填充,而不是美式格式。例子。本地日期變量存儲值爲'22 -Janv.-13',我想成爲'22 -JAN-13' – user3183775

+0

然後形成自己格式化日期。也許它需要註冊表中的設置,你可以看看那裏。通常情況下,應用程序按照最終用戶本地首選項而不是默認預設的服務器來顯示日期格式。 –