使用pyodbc损坏的结果集

时间:2013-02-09 00:27:48

标签: python pyodbc

Python 2.6版 pyodbc 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被破坏了? 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

问题可能不在pyodbc中,而在ODBC驱动程序本身中。这有几件事要尝试:

  • 尝试将列转换为另一种数据类型(不确定您使用的数据库,但是列可能是Unicode,驱动程序只能理解ASCII,或者其他方式;我倾向于认为这是问题)
  • 如果可用而不是ODBC(例如cx_Oraclepsycopg2
  • ,请使用专用的python客户端作为数据库
  • 查看ODBC驱动程序配置参数
  • 从其他供应商安装ODBC驱动程序