【发布时间】:2017-07-09 03:51:30
【问题描述】:
我创建了一个包含 4 条记录的表。表描述如下: Employer
现在当我运行以下代码时:
import cx_Oracle
con = cx_Oracle.connect("system/******@localhost/xe")
cur = con.cursor()
cur.execute("SELECT * FROM Employer")
print(cur.fetchall())
print("\nNumber of rows fetched =",cur.rowcount)
print("\nDescription:",cur.description)`
fetchall() 函数返回 []。 行数为 0。 但描述是正确的,即它应该是什么。
说明:[('COMPANYID', , 5, 5, 0, 0, 0), ('COMPANYNAME', , 50, 50, 0, 0, 0), ('EMAILID', , 30, 30, 0, 0, 1), ('MOBILE', , 11, 22, 10, 0, 1), ('CITY', , 15, 15, 0, 0, 1), ('INDUSTRYTYPE', , 20, 20 , 0, 0, 1), ('FUNCTIONALAREA', , 20, 20, 0, 0, 1), ('MEMBERSHIPPLAN', , 20, 20, 0, 0, 1), ('DATEOFSIGNUP', , 23, 7, 0, 0, 1), ('DATEOFRENEWAL', , 23, 7, 0, 0, 1), ('RENEWALSTATUS', , 10, 10, 0, 0, 1)]
当我在数据库上运行相同的查询时,它运行良好。但这里 fetchall() 返回一个空元组,并且行数为 0。请帮助。谢谢你。
【问题讨论】:
-
你确定你选择了你的数据库。尝试修改你的 sql 以显示所有表或其他简单的东西,以确保你在你认为的位置
-
当我在我的数据库上运行查询时会发生这种情况。 imgur.com/YX75dkk@乔
-
是的,我明白了。但是请尝试从脚本运行一个更简单的查询,以确保您真正连接到您想要的数据库。
-
还有什么比没有“where”子句的“select *”语句更简单的呢?我肯定已经连接到数据库并且我在“我想去的地方”。如果没有连接,我一开始就会出错。我从脚本中运行了一个“删除”查询,它工作得很好。我认为我编写 fetchall() 函数的方式一定有问题。但对我来说看起来不错。 @乔
-
您应该尝试运行的是任何可以从中获得结果的命令,以确保您连接到您认为的自己。就像下面在他的回答中提到的用户一样,我相信您实际上并没有与数据库建立良好的连接。或者您没有选择正确的数据库进行查询
标签: python python-3.5 cx-oracle fetchall