ASP+SQLserver2000にて、構築しております。


CSVデータをMicrosoft Text Driver (*.txt; *.csv)で接続し、SQLserverにインポートさせたいのですが、CSVデータ内の127文字以上のデータを読み取ってくれません。

Schema.iniを設置して
Col1=data1 Char Width 1024
といように、記載してみたのですがダメでした。
よろしく、お願いします。

回答の条件
  • 1人3回まで
  • 登録:2006/03/18 21:10:42
  • 終了:2006/03/19 04:47:08

ベストアンサー

id:bonlife No.2

回答回数421ベストアンサー獲得回数752006/03/19 00:30:16

ポイント35pt

SQL Serverは使ったことがないので、的外れでしたら申し訳ありません。

(会社ではOracle、趣味ではMySQLを使っています。)

こちらのMLに入って質問してみるなど、より詳しい人に確認した方が確実だと思います。

取り急ぎ、気になるところをフォローしておきます。

まず、前回の回答では、SQL Serverのデータ型とODBC Text driverのデータ型を混同しておりました。

最初の回答で挙げたURLはODBC Text driverのデータ型の説明です。

申し訳ありません。

確認すべきポイントは2点あると思います。

  1. DBのデータ型
  2. schema.iniの設定

まず、DBのデータ型ですが、sp_helpというコマンドで確認してみてください。

(GUIで確認できるツールがあれば、それでも構わないです。)

それぞれのフィールドのデータ型が分かると思います。

データ型は上記のページで説明されています。

文字列であれば、char、varchar、あるいはtextだと思います。

ここでフィールドの最大長が1024バイトより小さく設定されている場合、テーブルを変更して、1024バイト以上のデータを格納できるようにしてください。

テーブルの変更はALTER TABLEなどで行ってください。

DB側の設定が整いましたら、schema.iniの設定も変更します。

Col1=data1 Char Width 1024

ですと、Charとして扱うため、255バイトまでのデータしか正しく伝送されないと想像されます。

このCharの部分をLONGCHARに変更すれば、より大きいデータも扱えるようになると思います。

Col1=data1 LONGCHAR Width 1024

乗りかかった船、ということで追加回答いたしましたが、SQL Serverの有識者に確認することをお勧めいたします。

その他の回答(1件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数752006/03/18 21:33:45

ポイント35pt

SQL Serverに関しては素人なのですが、127という数字が引っかかって少し調べてみました。

データ型の問題ではないでしょうか。

http://msdn.microsoft.com/library/default.asp?url=/library/e...

CHAR型の場合、0-255バイトのデータしか格納できないようです。

CSVデータがマルチバイトの場合、127バイトが限界になりそうです。

LONGCHARなど、より大きなデータを格納できるようにDB側の設定を変更してみてはいかがでしょうか。

参考になると幸いです。

id:ebagos

ありがとうございます。

>LONGCHARなど、より大きなデータを格納できるようにDB側の設定を変更してみてはいかがでしょうか。

その方法を、是非とも教えてください!

2006/03/18 23:52:15
id:bonlife No.2

回答回数421ベストアンサー獲得回数752006/03/19 00:30:16ここでベストアンサー

ポイント35pt

SQL Serverは使ったことがないので、的外れでしたら申し訳ありません。

(会社ではOracle、趣味ではMySQLを使っています。)

こちらのMLに入って質問してみるなど、より詳しい人に確認した方が確実だと思います。

取り急ぎ、気になるところをフォローしておきます。

まず、前回の回答では、SQL Serverのデータ型とODBC Text driverのデータ型を混同しておりました。

最初の回答で挙げたURLはODBC Text driverのデータ型の説明です。

申し訳ありません。

確認すべきポイントは2点あると思います。

  1. DBのデータ型
  2. schema.iniの設定

まず、DBのデータ型ですが、sp_helpというコマンドで確認してみてください。

(GUIで確認できるツールがあれば、それでも構わないです。)

それぞれのフィールドのデータ型が分かると思います。

データ型は上記のページで説明されています。

文字列であれば、char、varchar、あるいはtextだと思います。

ここでフィールドの最大長が1024バイトより小さく設定されている場合、テーブルを変更して、1024バイト以上のデータを格納できるようにしてください。

テーブルの変更はALTER TABLEなどで行ってください。

DB側の設定が整いましたら、schema.iniの設定も変更します。

Col1=data1 Char Width 1024

ですと、Charとして扱うため、255バイトまでのデータしか正しく伝送されないと想像されます。

このCharの部分をLONGCHARに変更すれば、より大きいデータも扱えるようになると思います。

Col1=data1 LONGCHAR Width 1024

乗りかかった船、ということで追加回答いたしましたが、SQL Serverの有識者に確認することをお勧めいたします。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません