--------------------通俗易懂的语言,帮你解读疑惑-----------------------------
##################
#帮助你我,施舍快乐#
##################
Oracle数据库查询有多条,但用fetchone查询出来只有一条,fetchall查询多条但格式为tuple
原因:
1、fetchone把查询的结果集中的下一行保存为序列,或者None
2、fetchall把查询的结果集设置为tuple类型
针对oracle查询出多条值得情况,建议使用fetchall
解决方法:
sql = "select * from dual" #SQL语句一定不要有分号,不然会报错
if True:
cursor.execute(sql)
while True:
result = cursor.fetchall()
if result == None:
break
else:
for i in result:
i1 = list(i) #tuple类型先转换成List
if i1[0] == None:
i1[0] = "NULL" #若查询结果无记录,则将第一个字段设置为NULL
elif i1[1] == None:
i1[1] = "NULL" #若查询结果无记录,则将第二个字段设置为NULL
Exp = "表名:"+i1[0]+" 积压数:"+i1[1]+"\r" #输出为字符串类型