• ベストアンサー

AccessからOrcleのODBCリンクテーブルへの挿入

OS:XPpro Access:97,2000 Oracle:7 AccessからOracleのODBCリンクテーブルに対して追加クエリを実行すると、 ODBC--リンクテーブル'テーブル名'への挿入に失敗しました。 [Oracle][ODBC Oracle Driver][Oracle OCI]ORA-01461: can bind a LONG value only for insert into a LONG column.(#1461) というエラーが発生します。 メモ型のフィールド'A'をvarchar2(4000)のフィールド'B'に追加する部分で、LeftB(A,4000)としている部分がうまく行かないようようなので、LeftB(A,3000)と丸めてあげると通ります。 質問を纏めますと、 1.varchar2(4000)となっていても、4000Byteのデータを挿入することはできないのでしょうか。 2.発生しているエラーは、私の考えとは別の問題なのでしょうか。 ご回答よろしくお願いします。

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

LeftB 関数などは、正しい値を返しません。 http://okweb.jp/kotaeru.php3?q=1450574 こちらに回答しています。

mojaco
質問者

お礼

2つの質問に対してのご回答ありがとうございました。 ご教示いただいたページ大変勉強になりました。

その他の回答 (1)

回答No.1

>1.varchar2(4000)となっていても、4000Byteのデータを挿入することはできないのでしょうか。 varchar2(4000)のカラムに、4000バイトのデータを格納することは 当然可能です。 >2.発生しているエラーは、私の考えとは別の問題なのでしょうか。 クライアントの4000バイトが、DBサーバのキャラクタセットで4000バイトとは限りません。 例えば、sjisなクライアントの半角カナは、1文字=1バイトですが、eucなDB上では、 1文字=2バイトで格納されます。 なので、クライアント上の4000バイトが、DBサーバ上で、varchar2(4000)に格納できるか どうかは、設定次第です。 まずは、DBのキャラクタセットを確認してみて下さい。

関連するQ&A