Skip to main content
 首页 » 编程设计

python之使用 pyodbc 损坏的结果集

2025年05月04日11小虾米

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 

为什么结果集会损坏? 有什么建议吗?

请您参考如下方法:

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

  • 尝试将列转换为另一种数据类型(不确定您使用的是什么数据库,但该列可能是 Unicode,并且驱动程序只理解 ASCII,或其他方式;我倾向于认为这是问题)
  • 如果可用,请为您的数据库使用专门的 Python 客户端,而不是 ODBC(如 cx_Oracle、psycopg2)
  • 查看ODBC驱动配置参数
  • 安装来自不同供应商的 ODBC 驱动程序