python cx_oracle cursor.rowcount 返回 0 但 cursor.fetchall 返回数据

标签 python sql database oracle11g cx-oracle

我有这段代码,我正在使用 cx_oracle 包从 python 代码执行 select sql 语句:

import cx_Oracle

try:
    cur = conn.cursor()
    result = cur.execute('select * from table1')
    print(str(cur.rowcount))
    print(cur.fetchall())

except Exception as e:
    print(e)

当我执行上面的代码时,我看到 0 进入 cur.rowcount 但我看到以下数据被打印出来 cur.fetchall():

[('185',), ('1860',), ('1908',)]

cx_Oracle package documentation确实提到 Cursor.rowcount 作为有效操作,所以我不确定为什么在我的代码中它返回 0 即使数据来了?

最佳答案

文档指出 cursor.rowcount 指定当前已提取的行数。在调用 cursor.execute() 之后,没有获取任何行,因此结果为 0。如果调用 cursor.fetchone(),则结果将为 1,如果调用 cursor.fetchmany(5),则结果将是 6,依此类推(当然,假设有足够的行来满足您的请求!)。

关于python cx_oracle cursor.rowcount 返回 0 但 cursor.fetchall 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45986319/

相关文章:

python - Django mod_wsgi : Exception occurred processing wsgi script

sql - Postgres 最小函数性能

sql - oracle SQL 从这个 date_id 选择到这个 date_id

java - 如何将自定义数据附加到 ebean 实体?

python - 如何将 Canvas 上的图片复制到剪贴板?

python - 如何使用 csv dictreader、matplotlib 和 numpy 创建概率密度函数图?

python - 如何在 python 中将时间 "now-5m"转换为 datetime 对象

mysql - SET 类型列中集合元素的数量(人口计数)

python - 数据库和 Web 显示界面中错误处理的最佳策略

sql - 使用 SQL 从另一个表中提取附件 (Access 2010)?