我正在try 从SQL服务器数据库中映射表.其中一个表有一个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下转换为数字.有没有办法防止这种情况发生?或者在转换为数字时给出我想要的精度?
我try 了不同的方法:
- 自动反映所有表格:
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)
在这两种情况下,我都得到了上面所示的相同错误.
我正在使用:
SQLALCHEMIY 2.0.21
MS SQL Server 2014
谢谢