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

VBでオラクルを使ったアプリケーションをテストしているのですが、
次のようなエラーが出てとまってしまいます。

SQL実行エラー ORA-01801 
日付形式が内部バッファに対して長すぎます。

原因はいったい何なのでしょうか?
知っている方がいらしたら教えてください。
宜しくお願いいたします。

A 回答 (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');"

全然、見当違いでしたらすんません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/08 18:18

たぶん オラクルに渡すSQL文で日付の形がおかしいのではないでしょうか。


そのSQL文を SQL*Plusで直接流すと解ると思うのですが。
例えばSQL文を作るとこのマクロを

 StrSQL=StrSQL & "'" & format(日付,"yyyy/mm/dd") & "'"
こんな感じで、作成してみてもだめでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/08 18:19

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