for循环不在函数中退出

时间:2016-08-12 15:23:47

标签: python list loops for-loop cx-oracle

我在将一些工作代码转换为函数时遇到了一些麻烦。第一个代码示例运行没有问题,但下面的函数只是挂起。使用print进行一些调试显示该函数一直通过光标移动到最终记录,并将其附加到列表中,但程序挂起并且不会退出。

Cursor是cx_Oracle模块的一部分。目的是查询oracle db,然后创建一个列表。我已经在几个查询中测试了原始代码并且没有问题(最大返回大约是15000行)。在这一点上,我可以使用原始格式使代码工作,但我想知道我在函数中可能做错了什么。

工作代码:

cursor = db.cursor()
cursor.execute(mysqlexp)
for row in cursor:
    myList.append(row)
cursor.close()

功能(不工作):

def sqlToList(listname, sqlexp):
    cursor = db.cursor()
    cursor.execute(sqlexp)
    for row in cursor:
        listname.append(row)
        #print statement here indicates that final record appends
        #but then the program stops responding
    #print statement here never appears (indicating for loop hasn't exited?)
    cursor.close()
sqlToList(myList, mysqlexp)

0 个答案:

没有答案