我在将一些工作代码转换为函数时遇到了一些麻烦。第一个代码示例运行没有问题,但下面的函数只是挂起。使用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)