ORACLEでORA-01861: リテラルが書式文字列と一致しません

投稿日:2017-09-08

ORA-01861: リテラルが書式文字列と一致しません

このエラー、ぶっちゃけ、意味が分からないところでもある。
日付の指定時に発生してて、原因が判明するまでに結構回り道をしました。
ネットで検索した情報だと、Windowsのレジストリだの、Date型の指定を確実にしろだのという情報ばかりで、今回の現象には当てはまらなかった。

結論としては、パラメータに、「YYYY/MM/DD」の部分だけ突っ込んで発生してました。
「HH:MM:SS」も一緒に定義する必要があるってことです。

そもそもは、Date型に対して、PGからパラメータを定義するところで発生してたんですが、まさかパラメータだとは思わず、SQLの検証を先にやってしまうという罠。
パラメータを1個ずつ確認して、ようやく日付部分に問題があることを確認。
SQL単体では問題なく実行できてたりしたから、余計に分かりづらかった。

SQLとしては、setparameterコマンドで日付をセットしても実行できてしまったので、まさかそこが原因とは気づけず・・・

で、試しに
「2017/07/01」
ではなく
「2017/07/01 00:00:00」
をパラメータに突っ込んだら動いた。

実際は、日付の範囲指定だったので、「2017/07/01 00:00:00」〜「2017/07/01 23:59:59」みたいな力技だけどw

参考にしたページ
ORA-01861: リテラルが書式文字列と一致しません

ストアドパラメータでの日付の受け渡しについて







-C#, ORACLE
-,

関連記事

[C#]DateTimePickerは、CloseUpイベントで日付変更を取得する

日付関連で、取得した値がどうか?ってのを検出して判定する必要が出たのでメモ。 CloseUpイベントで何が判定されるのか? https://msdn.microsoft.com/ja-jp/libra …

[ORACLE]多分、例外的なora-00911:文字が無効ですエラーの解決方法

多分、このエラーを目にする機会はそれなりにあって、大体の対処法はググればすぐに見つかると思う。 例えば、 SQL実行時にはOKなのに、C#のOracleDbAccess実行時にエラーになる 全角スペー …

[ORACLE]ora-12638 資格証明の取出しに失敗しましたと表示される原因と対処法

客先で起こった内容。 状況 客先のdumpを取得するために、用意されているバッチファイルを実行した時に発生 ora-12638 資格情報の取出しに失敗しました バッチファイルの黒い画面で一瞬だけエラー …

[ORACLE]ORA-12514:TNS 指定された接続識別子を解決できませんでした のエラー対処法

ORA-12514 ORA-12514: TNS:listener does not currently know of service requested in connect descriptor …

[ORACLE]SQLのIN句にパラメータを適用する方法

カンマ区切りの文字列を取得した理由 こないだの続きです。 日本の中心付近で仕様変更と闘うSE日記[C#]リストをカンマ区切りの文字列で出力するhttp://ht-jp.net/blog/pc/c/c- …


カテゴリー