- PR -

oracle 10g 日付のフォーマット

投稿者投稿内容
Angler
ベテラン
会議室デビュー日: 2004/12/21
投稿数: 56
投稿日時: 2006-10-10 20:00
あんとれ様

ご連絡ありがとうございます。
export NLS_DATE_FORMAT "YYYY/MM/DD HH24:MI:SS"
は=が抜けてました汗。よって、
export NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"
export NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'
export NLS_DATE_FORMAT=YYYY/MM/DD HH24:MI:SS
の3種類試しましたがだめでした…
99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2006-10-10 21:37


[ メッセージ編集済み 編集者: 99ri 編集日時 2006-10-11 10:25 ]
Angler
ベテラン
会議室デビュー日: 2004/12/21
投稿数: 56
投稿日時: 2006-10-11 09:35
99ri様

全て初期の状態にしました。
宜しくお願い致します。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2006-10-11 09:49
引用:

Anglerさんの書き込み (2006-10-10 20:00) より:

export NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"
export NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'
export NLS_DATE_FORMAT=YYYY/MM/DD HH24:MI:SS
の3種類試しましたがだめでした…



環境変数 NLS_DATE_FORMAT はインスタンス全体に有効になるわけではなくて、環境変数が設定されている端末で接続したセッションに対してのみ有効になることは理解されておりますか?

例えば、NLS_DATE_FORMAT が設定されている端末でインスタンスを起動、NLS_DATE_FORMATが設定されていない別の端末から SQL*Plus とかで接続。この場合、別の端末には NLS_DATE_FORMAT が設定されていないので、デフォルトのフォーマット (RR-MM-DD) になってしまいます。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-10-11 09:56
引用:

Anglerさんの書き込み (2006-10-10 20:00) より:

export NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"
export NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'
export NLS_DATE_FORMAT=YYYY/MM/DD HH24:MI:SS
の3種類試しましたがだめでした…



まず、そもそもの話ですがシェルは bash を使っているんでしょうか。

例:
% echo $SHELL
/bin/csh

プロンプト上で直接 export NLS_DATE_FORMAT= ...... を実行して、
続けて echo echo $NLS_DATE_FORMAT を実行しても反映されていない
んでしょうかね。

例:(csh なので setenv)
% setenv NLS_DATE_FORMAT "rr/mm/dd hh24:mi:ss"
% echo $NLS_DATE_FORMAT
rr/mm/dd hh24:mi:ss

_________________
もしもし@RMAN 友の会
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-11 10:07
exportで環境変数を変更してもいいけど
どの設定が最優先なのかを知った上でやらないと
99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2006-10-11 10:17
引用:

Anglerさんの書き込み (2006-10-11 09:35) より:
99ri様

全て初期の状態にしました。
宜しくお願い致します。



申し訳ありません。 
一旦全削除というのは自分のコメントに対して全削除したという意味です。

ALTER SYSTEM SET NLS_DATE_FORMAT=xxxxxx SCOPE=SPFILE で変更は可能です

上記通常はSPFILEを使用して立ち上げた場合です。
従来のinit<SID>.oraを使用した場合は直接パラメータを記述する必要があります
いずれにしても再起動が必要です

日付のフォーマットをYYYY/MM/DD HH:MI:SS に統一したいとのことですが
クライアント側でNLS_LANGが設定されているので上書きされます
この辺の影響を調査する必要があると思います
WINDOWSの標準ではJAPANESE_JAPAN.JA16SJISになり
SQLPLUSのセッションではV$NLS_PARAMETERSで確認するとDBの設定値になりません

確認するビューです
NLS_INSTANCE_PARAMETERS
NLS_INSTANCE_PARAMETERSは、インスタンスのNLSパラメータを示します
初期値をALTER SYSTEM等で明示指定した項目が表示されます

NLS_DATABASE_PARAMETERS
NLS_DATABASE_PARAMETERSは、データベースの永続NLSパラメータを示します。

V$NLS_PARAMETERS
セッション単位です

OracleR10.2のドキュメントです
http://otn.oracle.co.jp/document/products/oracle10g/index.html


[ メッセージ編集済み 編集者: 99ri 編集日時 2006-10-11 13:09 ]
99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2006-10-11 23:25
接続するクライアント側でDBのデフォルトを上書きするので
DBのNLS_DATE_FORMATパラメータを変更する必要はないと思います

Linuxログイン時にNLS_DATE_FORMATを環境変数に設定することで
DBの接続と切断を繰り返しても書式を指定しない場合に同じフォーマットが適用されます

スキルアップ/キャリアアップ(JOB@IT)