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# OracleDbAccessを使用して、SQL実行時にORA-00911 文字が無効です のエラー

表題のとおり、C#でOracleDbAccessを使用して、SQLを実行させる時に発生しました。 ネットで探すと、 全角スペースが原因 とか出てきたので、SQL内のスペースを全て半角スペースに置き換え …

C#で”LC.exe” はコード -1 を伴って終了しました(”LC.exe” exited with code -1)ってエラー

未だに確定した原因は自分で掴めてないんだけど、とりあえずエラーで検索して対策してみた。 どうにも、ビルド時にEXEフォルダ?とかにSRCフォルダからのコピーが上手くいかずにロックされてしまったりすると …

ORACLEのMERGE INTOで、UPDATEは出来るのに、INSERTできない

最近、Oracleのエラーの話しか書いてない気がするw     便利というか、トランザクション内の処理も1つで済むので、MERGE INTO文を使うことがあります。 実際、 新規デ …

[ORACLE]統計更新を強制的にする

Oracleの統計情報の更新方法 頻度はそんなに無いというか、先日、トラブル対応時に必要に迫られたので・・・ 通常は、Oracleの統計情報は1日1回更新されるらしいんだけど、夜とかになるみたい。 多 …

no image

C#で正規表現が使えたらな〜って時は以外と多いので、ちょっと正規表現を頑張って使ってみた。

あー、正規表現が使えたらな〜って時は以外と多いので、ちょっと正規表現を頑張って使ってみた。 別にC#に限らないんだけど、ソースの中に正規表現を書く時の書き方?っていうのかな。が分からなかったので、調べ …


カテゴリー