使用Oracle DB关闭SqlAlchemy中的自动转换为Decimal

时间:2012-02-05 22:40:06

标签: oracle sqlalchemy decimal

在查询Oracle数据库时,如何告诉SqlAlchemy 将Oracle Number字段转换为Decimal?

我正在尝试使用SqlAlchemy替换包含手动sql语句的一堆代码。许多查询处理从数据库中获取500列数字。 SQL alchemy版本使用它们的池连接速度慢了10倍,几乎可以肯定是因为转换为Decimal。

>>> engine = sqlalchemy.create_engine("oracle+cx_oracle://"+connString)
>>> conn = engine.pool.connect()
>>> cursor = conn.cursor()
>>> cursor.execute("""SELECT * FROM MY_TABLE""")
>>> r = cursor.fetchone()
>>> r[-1]
Decimal('0.878935370620606')

如何告诉方言不要转换为十进制? (旧代码不使用小数,因此精度损失并不重要。减速10倍是。)

1 个答案:

答案 0 :(得分:0)

我也在SqlAlchemy列表中问了这个问题,得到了good answer。没有办法,但开发人员迅速添加了一个。此外,他建议使用cDecimal python库作为标准库十进制模块的更快,替代品。