我正在使用 python、sqlalchemy 和 pymssql 连接到专有的 MSSQL 数据库。数据库无法编辑,我只需要从中读取数据。现在,当我的程序第一次在数据库上运行查询时,它会吐出这条消息。
path/to/sqlalchemy/dialects/mssql/pymssql.py:50: SAWarning: Dialect mssql+pymssql does *not* support Decimal objects natively, and SQLAlchemy must convert from floating point - rounding errors and other issues may occur. Please consider storing Decimal numbers as strings or integers on this platform for lossless storage.
return sqltypes.Numeric.result_processor(self, dialect, type_)
我知道这是 sqlalchemy 对我说话,这意味着当我从 Decimal 类型的字段中读取数据时,它将被转换为 Float 并在此过程中四舍五入。
所以我有两个关于这个的问题......
首先,在 Linux 机器上,有没有办法从 MSSQL 数据库中获取十进制数据而不会出现这个问题?
其次,为什么程序打印此消息而不是崩溃或引发异常?如果我能应付这个小错误,那么我该如何阻止不断向我吐出消息呢?