我使用pyodbc连接到Vertica数据库,然后使用cursor执行查询,但是查询的结果包括一个很大的文本字段,execute运行但它从不返回任何内容,甚至不返回异常。当我在第行调试和中断点时可以看到这一点=游标.fetchall()它就像这样空的“[]”
如果我尝试在这个巨大的文本字段中使用另一个包含较少字符的数据集,那么execute将运行并获取数据。我怀疑这与检索数据时的缓冲区大小有关,但我不知道。有什么建议吗?也许可以增加缓冲区大小?在
谢谢
import requests, pypyodbc, json, pyvertica, pyodbc
from pyvertica import connection
conn=pyodbc.connect("DSN=HPVertica;UID=muffin;PWD=muffin")
cursor=conn.cursor()
query="SELECT field1_int, field2_bigText FROM someTable WHERE field1_int=103;"
try:
cursor.execute(query)
except Exception as e:
print('err: {}'.format(e.args[0]))
print(': {}'.format(e.args[1]))
row=cursor.fetchall()
我用pypyodbc而不是pyodbc解决了这个问题,不再有缓冲区错误
我相信这是pyodbc中的一个已知问题,至少我肯定我以前见过这种抱怨,也见过一些随机补丁。我刚刚看了一下pyodbc代码,看起来他们最近在this commit中修复了这个问题。在
它似乎不在最新的3.0.10标签中。你要么要试试出血的边缘,要么再等一段时间,让它包含在未来的标签中。(或者我猜是基于这个承诺自己修补)。在
相关问题 更多 >
编程相关推荐