結果セットをループせずに SQL Alchemy クエリ ResultProxy オブジェクトから行数を取得する方法を知っている人はいますか? ResultProxy.rowcount 属性は 0 を示しています。値は 2 であると予想されます。更新の場合、影響を受ける行の数が表示されます。
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine(
'oracle+cx_oracle://user:pass@host:port/database'
)
session = sessionmaker(
bind = engine
, autocommit = False
, autoflush = False
)()
sql_text = u"""
SELECT 1 AS Val FROM dual UNION ALL
SELECT 2 AS Val FROM dual
"""
results = session.execute(sql_text)
print '%s rows returned by query...\n' % results.rowcount
print results.keys()
for i in results:
print repr(i)
出力:
0 rows returned by query...
[u'val']
(1,)
(2,)