• ベストアンサー

SQL実行エラー

VBでオラクルを使ったアプリケーションをテストしているのですが、 次のようなエラーが出てとまってしまいます。 SQL実行エラー ORA-01801  日付形式が内部バッファに対して長すぎます。 原因はいったい何なのでしょうか? 知っている方がいらしたら教えてください。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • osaosa42
  • ベストアンサー率60% (20/33)
回答No.2

想像ですが、SQL文を作成しているところで、VBの日付をそのまま渡してないですか? Dim strSQL As String Dim vbDate As Date vbDate=Now strSQL="select * from TableA Where oraDate="+vbDate+";" もし、そうしてたら、次のように直してください。 strSQL="select * from TableA Where oraDate=TO_DATE('" + Format(vbDate, "yyyy/mm/dd") + "','YYYY/MM/DD');" 全然、見当違いでしたらすんません。

saruno
質問者

お礼

ご丁寧な回答本当にありがとうございました。 またよろしくお願い致します。

その他の回答 (1)

  • urk
  • ベストアンサー率33% (18/53)
回答No.1

たぶん オラクルに渡すSQL文で日付の形がおかしいのではないでしょうか。 そのSQL文を SQL*Plusで直接流すと解ると思うのですが。 例えばSQL文を作るとこのマクロを  StrSQL=StrSQL & "'" & format(日付,"yyyy/mm/dd") & "'" こんな感じで、作成してみてもだめでしょうか。

saruno
質問者

お礼

ありがとうございました。 実際、SQLで直接流してみるという手がありますね。 大変勉強になります。

関連するQ&A