Re: 問題ID: 19840 質問

この質問の投稿一覧へ

なし Re: 問題ID: 19840 質問

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2015-12-4 11:56
arashi1977  長老 居住地: 広島  投稿数: 1715
これは実行環境によるのかもしれません。

Oracle® Database SQL言語リファレンス
11gリリース2 (11.2) TO_DATE
https://docs.oracle.com/cd/E16338_01/server.112/b56299/functions203.htm#i1003589
引用:
'nlsparam'引数には、日付に変換されるテキスト文字列の言語を指定します。この引数は、次の書式で指定します。

'NLS_DATE_LANGUAGE = language'
実行例で言えば
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> SELECT SYSDATE - TO_DATE('1999-Apr-01', 'YYYY-Mon-DD') FROM dual;
SELECT SYSDATE - TO_DATE('1999-Apr-01', 'YYYY-Mon-DD') FROM dual
                         *
行1でエラーが発生しました。:
ORA-01843: 指定した月が無効です。


SQL> SELECT SYSDATE - TO_DATE('1999-Apr-01', 'YYYY-Mon-DD', 'NLS_DATE_LANGUAGE=ENGLISH') FROM dual;

SYSDATE-TO_DATE('1999-APR-01','YYYY-MON-DD','NLS_DATE_LANGUAGE=ENGLISH')
------------------------------------------------------------------------
							      6091.49588
私の環境も日本語で動作させているのですが、「Apr」という月の表現は日本語環境ではありえないので、ORA-01843が返ってきているんですね。

実試験では世界共通の問題を使うと思いますので、言語環境が英語、という前提で考えればよいのではないでしょうか?

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.