NLS_DATA関連の備忘録

シェルの環境変数としてセット

定義したシェルから起動したOracleクライアントに対して有効
Oracle用ユーザの「~/.bash_profile」に定義した場合は、永続的に有効化

$ export NLS_DATE_FORMAT='YYYY-MM-DD'
$ export NLS_TIMESTAMP_FORMAT="YYYY-MM-DD HH24:MI:SS"


セッション内のみ定義を有効化

環境影響が少ない

SQL> select sysdate from dual;

SYSDATE
--------
20110916

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

セッションが変更されました。

SQL> select sysdate from dual;

SYSDATE
-------------------
2011-09-16 19:43:20


永続的に有効化(spfileに記録)

sqlplus> alter system set NLS_DATE_FORMAT = 'YYYY/MM/DD' SCOPE=SPFILE;


その他

nls関連パラメータ

SQL> column parameter format a30
SQL> column values format a30;
SQL> select * from v$nls_parameters;

PARAMETER		       VALUE
------------------------------ ----------------------------------------------------------------
NLS_LANGUAGE		       JAPANESE
NLS_TERRITORY		       JAPAN
NLS_CURRENCY                   ¥
NLS_ISO_CURRENCY	       JAPAN
NLS_NUMERIC_CHARACTERS	       .,
NLS_CALENDAR		       GREGORIAN
NLS_DATE_FORMAT 	       YYYYMMDD
NLS_DATE_LANGUAGE	       JAPANESE
NLS_CHARACTERSET	       AL32UTF8
NLS_SORT		       BINARY
NLS_TIME_FORMAT 	       HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT	       YYYYMMDD HH24MISSXFF
NLS_TIME_TZ_FORMAT	       HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT        YYYYMMDD HH24MISSXFF TZR
NLS_DUAL_CURRENCY	       \
NLS_NCHAR_CHARACTERSET	       AL16UTF16
NLS_COMP		       BINARY
NLS_LENGTH_SEMANTICS	       BYTE
NLS_NCHAR_CONV_EXCP	       FALSE

19行が選択されました。