• 締切済み

LONG RAW型について

> はじめまして。 > C言語でLONG RAWに対して > SQLExecDirectを用いて UPDATE A SET DAT=HEXTORAW('***'); > ***は2000バイト以上 > を行なったところエラーとなってしまいました。 > LONG RAW型は2Gバイトまで対応していると思うのですがどうしてでしょうか? HEXTORAW関数がRAW値(2000バイトまで)を返すからだと思われるのですが 2000バイト以上のバイナリデータを扱うにはどうしたらよいのでしょうか? バージョン情報 OS:WindowsNT Oracle8 : 8.0.5.0.0 ODBC : 8.0.5.1b.0

みんなの回答

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.2

返事が遅くなりました。申し訳ありません。 Error Code 1704はサイズオーバーです。 HEXtoRAWで返される値と、テーブル定義をもういちど見直してみてはいかがでしょうか? 具体的な解決案が見ません・・・。ごめんなさい。

tosakoku
質問者

お礼

回答ありがとうございます。 残念ながらオラクルサーバは他メーカであり、当然、テーブル定義も他メーカで 他メーカのオラクルサーバにアクセスするためHEXtoRAWで返される値もテーブル定義も見直しは難しいです。 他の方法を探って見ます。

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

HEXtoRAW関数の引数に入れているものがどういうものかわからないので、なんとも言えません。 そのSQLを流した時のエラーメッセージはなんと出ていますか?

tosakoku
質問者

お礼

回答ありがとうございます。 HEXtoRAW関数の引数は2000バイト以上のバイナリデータです。 エラーメッセージはSQLError関数の 4つ目の引数でS1000 5つ目の引数で1704 が返ってきています。

関連するQ&A