我有这段代码,我正在使用 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/