当前位置: 代码迷 >> 综合 >> python语言的缺陷:rowcount必须cursor全fetch后才能有值
  详细解决方案

python语言的缺陷:rowcount必须cursor全fetch后才能有值

热度:62   发布时间:2024-03-06 19:03:51.0

实例:

>>> sql="select * from ab01  WHERE  bab017 is  null  and  aae053 is  null"
>>> curs.execute(sql)

>>> print(curs.rowcount)
0

>>> print(len(list(curs)))
53
>>> print(len(list(curs)))
0

>>> print(curs.rowcount)
53

>>> curs.fetchall()
[]
>>> print(len(list(curs)))
0
>>> print(curs.rowcount)
53

修改我的代码如下,解决问题:

cursor执行完毕使用set接手所有结果,然后使用set处理结果

curs=conn.cursor()
dt=str(datetime.datetime.now()).replace(':','').replace('-','').replace(' ','')[0:6]
csv_file_dest= fn
#"test"+dt+".tsv"
outputFile=open(csv_file_dest,'w', newline='',encoding='utf-8')
output=csv.writer(outputFile,delimiter='\t',quotechar='"')
#sql="select * from AC01_TB55"
curs.execute(sql)
rs=curs.fetchall()
print(curs.rowcount)
#print(len(list(curs)))
if curs.rowcount>0:cols=[]for col in curs.description:cols.append(col[0])output.writerow(cols)for row_data in rs:output.writerow(row_data)
outputFile.close()