【发布时间】:2019-09-26 23:36:21
【问题描述】:
使用sqlalchemy在oracle上执行SQL
QUERY = SELECT score as SCORE FROM USER1.TABLE1 WHERE id = 101 ORDER BY score DESC
output = []
results = db.engine.execute(QUERY)
[output.append(dict(row)) for row in results]
输出:
[{'score': Decimal('0.9556')},.....]
分数数据类型 - Number(16,14)
- 即使在大写别名后,我也得到小写输出。
- 我们可以删除输出中的
Decimal吗?
我尝试将分数转换为浮点数
SELECT CAST(score as FLOAT) as SCORE FROM USER1.TABLE1 WHERE id = 101 ORDER BY score DESC
我得到类似的输出,
[{'score': 0.9191699999999999},.....]
【问题讨论】:
-
试试
score as "SCORE" from .. -
@KaushikNayak 仍然很小
-
好吧,我不熟悉
sqlalchemy是如何处理这些案件的。我一般使用 Cx_Oracle 来查询 Oracle 数据库。通常,Oracle 的 SQL 引擎默认将所有标识符转换为大写。确实不需要双引号。所以,你得到它是小写的,这意味着它与 sqlalchemy 的一些设置有关,它将它转换为小写。
标签: python oracle sqlalchemy