2

Pythonバージョン2.6pyodbcバージョン3.0.6

Pythonコード例:#!/ usr / bin / python26

import pyodbc
import os
import sys

SQL = sys.argv[1];

conn = pyodbc.connect('DSN=VerticaDSN')
cursor = conn.cursor()

cursor.execute(SQL)
rows = cursor.fetchall()
for row in rows:
   print row[0]

表のようにデータを出力する代わりに、Pythonは破損したデータを出力します。

ps
t Foods
smart
ly Dollar
enney
ean
rd

期待される結果セット:

Ames
Ukrops
Giant Foods
Cardsmart
Aco
Family Dollar
JC Penney
Eckerd

Resultsetが破損するのはなぜですか?助言がありますか?

4

1 に答える 1

1

問題は、ODBC ドライバー自体ではなくpyodbc、ODBC ドライバー自体にある可能性があります。試してみるべきいくつかのことを次に示します。

  • 列を別のデータ型にキャストしてみてください (使用しているデータベースはわかりませんが、列が Unicode であり、ドライバーが ASCII のみを理解するか、またはその逆である可能性があります。これが問題であると考える傾向があります)。
  • 可能であれば、ODBC の代わりにデータベースに特化した Python クライアントを使用します ( cx_Oracle、 などpsycopg2) 。
  • ODBC ドライバーの構成パラメーターを確認する
  • 別のベンダーの ODBC ドライバーをインストールする
于 2013-02-09T02:36:01.473 に答える