我正在使用适配器pg8000
通过以下代码读取我的数据库中的记录:
cursor = conn.cursor()
results = cursor.execute("SELECT * from data_" + country + " WHERE date >= %s AND date <= %s AND time >= %s AND time <= %s", (datetime.date(fromdate[0], fromdate[1], fromdate[2]), datetime.date(todate[0], todate[1], todate[2]),datetime.time(fromtime[0],fromtime[1]), datetime.time(totime[0],totime[1])))
results = cursor.fetchall()
当我选择一个包含 100 条记录的日期范围时,问题就出现了。它不是大量的记录,但足以导致以下问题,我看不出问题可能来自哪里 - 因为它似乎取决于带回的记录数量。例如:results = cursor.fetchall()
似乎工作得很好并返回一个结果。
我得到的错误信息是:
File "/mnt/opt/Centos5.8/python-2.7.8/lib/python2.7/site-packages/pg8000/core.py", line 1650, in handle_messages
raise error
pg8000.errors.ProgrammingError: ('ERROR', '34000', 'portal "pg8000_portal_0" does not exist')
显然,尽管进行了探索,但我找不到解决此问题的方法。
使用时fetchmany()
,结果如下:
results = cursor.fetchmany(100)
作品- 仅限于 100
results = cursor.fetchmany(101)
失败- 与上述相同的错误