2016-03-31 67 views

回答

1

表名實際上是nls_instance_parameters(複數)。全部在the docs

NLS參數確定 客戶端和服務器上的特定於語言環境的行爲。

所以你提到的一個 - NLS_DATE_FORMAT - 定義與TO_CHARTO_DATE功能使用默認的日期格式。

從文檔

尼斯例如:

要設置默認的日期格式爲 月顯示羅馬數字,包括在初始化參數以下行 文件:

NLS_DATE_FORMAT = "DD RM YYYY"

輸入以下SELECT語句:

SELECT TO_CHAR(SYSDATE) currdate FROM dual;

你應該看到下面的輸出,如果今天的日期是2月12日,1997年 : 12 II 1997

1

如果設置,NLS_INSTANCE_PARAMETERS覆蓋從NLS_DATABASE_PARAMETERS的設置,但反過來由NLS_SESSION_PARAMETERS覆蓋。

有關於這in the docuemntation的一些信息:

當CREATE DATABASE語句的執行過程中創建一個新的數據庫中,NLS相關的數據庫配置成立。當前的NLS實例參數與數據庫和國家字符集一起存儲在數據字典中。在實例啓動時從初始化參數文件中讀取NLS實例參數。

And;

應用程序可以通過查詢以下數據字典視圖檢查會話,實例和數據庫NLS參數:

  • NLS_SESSION_PARAMETERS顯示NLS參數和它們的值是查詢視圖的會話。它不顯示有關字符集的信息。
  • NLS_INSTANCE_PARAMETERS顯示了已經明確設置的當前NLS實例參數以及NLS實例參數的值。
  • NLS_DATABASE_PARAMETERS顯示數據庫的NLS參數的值。這些值存儲在數據庫中。

NLS設置有一個優先順序。如果會話沒有明確設置NLS參數,則使用實例設置;如果實例沒有明確設置該參數,則使用數據庫設置。

NLS_DATE_FORMAT是一個很可能改變的例子。數據庫在創建時有一個默認格式集。如果pfile/spfile指定它,那麼實例啓動時優先。新會話將使用實例設置,或者如果未明確設置,將會繼承數據庫設置。但許多客戶端會設置NLS_DATE_FORMAT - 例如,SQL Developer允許您通過其首選項設置該設置和其他NLS設置;你可以做ALTER SESSION SET NLS_DATE_FORMAT ...在會話期間再次更改它。

您不可能直接引用NLS_INSTANCE_PARAMETERS,因爲它不一定會告訴您任何關於當前會話的有用信息 - 因爲並非所有值都設置了,並且有些值可能會被覆蓋。我認爲,如果您需要了解當前任何會話設置,則查詢NLS_SESSION_PARAMETERS更爲正常。

+0

謝謝你sir :) –

相關問題