【问题标题】:cursor.fetchall() returns empty tuple with cx_Oraclecursor.fetchall() 返回带有 cx_Oracle 的空元组
【发布时间】: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


【解决方案1】:

信不信由你,您没有连接到正确的数据库和/或表确实是空的。你得到的描述是由数据库推断出来的,不需要查询有任何结果。

【讨论】:

  • 原来我使用的连接字符串中的服务名称是错误的。现在问题已经解决了。感谢您的时间。 @user2722968
猜你喜欢
  • 2018-02-09
  • 2018-02-26
  • 2023-03-18
  • 2019-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多