【发布时间】:2018-02-09 16:43:55
【问题描述】:
我有这个代码,我正在使用 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,即使数据即将到来?
【问题讨论】:
-
如果你
print(str(cur.rowcount))之后print(cur.fetchall())? -
@CristiFati 是的,然后它会打印。为什么会出现这种行为?这是 cx_Oracle 包中的要求吗?在pymysql包中不需要这样
-
我从未使用过 cx_Oracle(至少没有直接使用过)。但是,引用文档(您提供的链接):“此只读属性指定当前已从光标中获取的行数......”。关于 pyMySQL,我对此一无所知,但它们是 2 个独立的包,包含 2 个不同的 DB 系统....我认为它们没有任何限制行为方式相同。
标签: python sql database oracle11g cx-oracle