8

ODBC 接続を使用して MSSQL データベースに接続する Python プログラムがあります。私が使用している Python ライブラリは pypyodbc です。

これが私のセットアップです:

  • Windows 8.1 x64
  • SQL Server 2014 x64
  • パイソン 2.7.9150
  • PyPyODBC 1.3.3
  • ODBC ドライバー: SQL Server ネイティブ クライアント 11.0

私が抱えている問題は、varchar(max) 列を持つテーブルをクエリすると、コンテンツが切り捨てられることです。

私はpypyodbcが初めてで、狂ったように検索してきましたが、pypyodbcまたはpyodbcでこれが発生するのを防ぐ方法について何も見つかりません。少なくとも、私が使ってきた検索用語には当てはまらず、他にどのフレーズを試したらよいかわかりません。

SQL クエリに追加しようとしSET TEXTSIZE 2147483647;ましたが、データはまだ切り詰められています。

これを防ぐにはどうすればよいですか?または、私を正しい方向に向けることができますか?

アップデート:

そこで、SQL クエリでキャストを実行してみました。私が行うCAST(my_column as VARCHAR(MAX))と、同じ位置で切り捨てられます。ただし、これを行うCAST(my_column as VARCHAR(8000))と、テキストのセットが大きくなりますが、コンテンツの一部が切り捨てられます。それよりも大きなことをしようとすると、それが使用できる最大8000であるというエラーが表示されます。8000ここで何が起こっているのか知っている人はいますか?を使用してもうまくいかないのは奇妙に思えMAXます。

4

3 に答える 3

2

以前にこの問題を見たことがあるので、FreeTDS を使用していると思います。あなたの freetds.conf ファイルで、おそらく [global] の下に:

[global]
text size = 64512

SQL Server のバージョンに応じて、これを次のように変更します。

[global]
text size = 4294967295

また、DSN のいずれかを変更する必要があります。

これが問題でない場合は、さらに情報が必要です: Linux または Windows から接続していますか? SQL Server のどのバージョンですか? 接続に使用しているドライバーは何ですか?

于 2015-11-23T19:19:37.380 に答える