Python pyobdc和direct query在Teradata方面有所不同

Python pyobdc和direct query在Teradata方面有所不同,python,odbc,teradata,pyodbc,Python,Odbc,Teradata,Pyodbc,我正在使用pyodbc连接到Teradata数据库,现在似乎有些东西工作正常: 这: 返回看起来是溢出的值,一个类似14063014173190的数字,但实际上表中只有260个条目,我是通过直接从teradata在sql assistant上查询得到的 但是,在执行select*时,结果似乎是正确的 你知道会发生什么吗 运行于: Linux eron-redhat-100338 2.6.32-131.0.15.el6.x86_64 谢谢 编辑:我不认为这是一个fetchall问题。这只是改变我

我正在使用pyodbc连接到Teradata数据库,现在似乎有些东西工作正常:

这:

返回看起来是溢出的值,一个类似14063014173190的数字,但实际上表中只有260个条目,我是通过直接从teradata在sql assistant上查询得到的

但是,在执行select*时,结果似乎是正确的

你知道会发生什么吗

运行于:

Linux eron-redhat-100338 2.6.32-131.0.15.el6.x86_64
谢谢

编辑:我不认为这是一个fetchall问题。这只是改变我是否得到一个列表,或元组或任何东西,但数字不会改变

有趣的是,我发现

query = "SELECT CAST(count(*)) AS DECIMAL(10,2) FROM my_table"
得到正确的数字,只作为浮点数。整数出现了一些问题。

当fetchall返回记录集时,您需要第一条记录的第一列,您应该使用如下内容:

print('# of rows: [%s]' % (c.fetchall()[0][0]))
或:


fetchall方法应该返回,而不是单个标量值。你能准确地发布你从cur.fetchall得到的信息吗?我编辑了我的问题。
print('# of rows: [%s]' % (c.fetchall()[0][0]))
for row in c.fetchall():
    print('# of rows: [%s]' % (row[0]))