我把有50万条记录的empList作为查询的输入,但我的python cx_oracle代码出现了以下错误。我需要所有这50万条记录的结果。如何在不创建临时表的情况下得到这个结果?这将是很好的,如果我传递它作为一个列表或数据框架。
错误。
cx_Oracle.DatabaseError: ORA-01795: 列表中表达式的最大数量为1000个。
curs.execute("select ID,NAME,SAL from EMP where ID in "+str(tuple(empList))+" ")
解决方法 ::我已经解决了这个问题,每次都会像下面这样分割并发送1000条记录。而且性能也不错。
repeat = 1
for i in range(0, len(myList), 1000):
for j in range(i, 1000*repeat):
if j+1 <= len(myList):
tempList.append(myList[j])
//Further processing logic
tempList = []
repeat += 1