我正在尝试反映 SQL Server 数据库中的表。其中一个表有一个 id 列,类型为 bigint,并以下限值 -9223372036854775808 开头。在反思过程中我意识到,我得到了
DataError: (pyodbc.DataError) ('22003', '[22003] [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Arithmetic overflow error converting bigint to data type numeric. (8115) (SQLExecDirectW)')
错误,显然它试图将 bigint 下转换为数字。有办法防止这种情况吗?或者给出我在转换为数字时想要的精度?
我尝试了不同的方法:
engine = create_engine(db connection)
Base = automap_base()
Base.prepare(autoload_with=engine)
也可以通过创建表格:
from sqlalchemy import create_engine, MetaData, Table
from sqlalchemy import BigInteger
metadata = MetaData()
# reflect the table
table = Table('OEData', metadata, autoload_with=engine)
在这两种情况下我都会遇到上面显示的相同错误。
我正在使用:
sqlalchemy 2.0.21
MS SQL 服务器 2014
谢谢
您在 SQLAlchemy 的 mssql 反射代码中遇到了错误。这里已经报道了