我正在使用pyodbc连接到Vertica DB,然后我使用游标执行查询,但查询结果包含一个巨大的文本字段,执行运行但它永远不会返回任何内容,甚至不是异常。当我在row = cursor.fetchall()调试和断点时,我可以看到这个,就像这样“[]”
如果我尝试在这个巨大的文本字段中使用较少字符的另一个数据集,则执行运行并获取数据。我怀疑它在检索数据时与缓冲区大小有关,但我不知道。有关如何做到这一点的任何建议?也许以某种方式增加缓冲区大小?
由于
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()
答案 0 :(得分:0)
我相信这是pyodbc中的一个已知问题,至少我相信我之前已经看过这个抱怨并且还有一些随机补丁。我只是查看了pyodbc代码,看起来他们最近几周前在this commit修复了这个问题。
它似乎不是3.0.10的最新版本(截至本文)。您要么必须尝试前沿,要么等待一段时间才能将其包含在将来的标签中。 (或者我自己根据提交自行修补)。
答案 1 :(得分:0)
我使用pypyodbc而不是pyodbc来解决这个问题,不再有缓冲区错误了