使用PyoDBC查询Vertica时,Python缓冲区的大小



我正在使用pyodbc连接到vertica db,然后我使用光标执行查询,但是查询的结果包括一个很大的文本字段,执行ececute却不运行,但它永远不会返回任何东西,甚至没有例外。当我在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()

我相信这是pyodbc中的一个已知问题,至少我敢肯定,我已经看过以前抱怨过,还有一些随机的补丁。我只是看了PYODBC代码,看来他们最近几周前解决了此问题。

它似乎不在3.0.10的最新标签中。您要么必须尝试出血边缘,要么等待更长的时间才能将其包含在以后的标签中。(或者我猜是根据该提交自己修改)。

我使用pypyodbc而不是pyodbc解决了这个问题,没有缓冲区错误

最新更新