使用Pyodbc查询Vertica时的python缓冲区大小

时间:2015-05-11 21:29:31

标签: python buffer pyodbc vertica

我正在使用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()

2 个答案:

答案 0 :(得分:0)

我相信这是pyodbc中的一个已知问题,至少我相信我之前已经看过这个抱怨并且还有一些随机补丁。我只是查看了pyodbc代码,看起来他们最近几周前在this commit修复了这个问题。

它似乎不是3.0.10的最新版本(截至本文)。您要么必须尝试前沿,要么等待一段时间才能将其包含在将来的标签中。 (或者我自己根据提交自行修补)。

答案 1 :(得分:0)

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