2

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

为什么结果集被破坏?有什么建议么?

4

1 回答 1

1

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

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