重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ある海外製品のパッケージをインストールしています。Oracle 11gR2をWindows上で使用しています。
パッケージインストール時に、テーブル作成文の他、サンプルデータのinsertスクリプトが付属しているので実行したのですが、「SQLエラー: ORA-01843: 指定した月が無効です。」というエラーになってしまいます。カラムはDATEで定義されていて、挿入データが以下のようになっています。
TO_DATE('28-Jul-1948 12:00:00 AM', 'dd-Mon-yyyy HH:MI:SS AM')

OSやOracleデータベースが英語の環境ではこのエラーは発生しなかったので、日本語環境で発生しているものと思われます(キャラクタセットはJA16SJISTILDEです)が、日本語環境にも問題なく上記サンプルデータを挿入するには、スクリプトをどのように修正するとよいでしょうか?ご存じの方、教えてください。宜しくお願いします。

A 回答 (1件)

書式 MON はNLS_DATE_LANGUAGEやNLS_LANGUAGEに依存します。


下記のやり方でTO_DATEしてみて変換できるか試してください。

TO_DATE('28-Jul-1948 12:00:00 AM', 'dd-Mon-yyyy HH:MI:SS AM','NLS_DATE_LANGUAGE = American')

この回答への補足

mo2yakkoさん、ご回答ありがとうございます。ご教示頂いたスクリプトで問題なく実行することができました。と同時に、先ほどTO_DATE('28 7月 1948 12:00:00 午前', 'dd Mon yyyy HH:MI:SS AM')で正常に入力できることを確認したのですが、これら2つのやり方に保存されるデータ上に何か違いがありますか?別の聞き方をすると、入力できる以上、データ自体は全く同じものが入っている(ただ入力時のフォーマットが違うだけ)のでしょうか、それともデータとして違う内容が保存されるのでしょうか?(例えばフォーマットそのものもDate型のカラムに保存されるとか。。?)基本的なことでしたらすみません。

補足日時:2011/02/16 16:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!