我正在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 了不同的方法:

  1. 自动反映所有表格:
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

谢谢

推荐答案

您在用于MSSQL的SQLAlChemy反射代码中遇到了错误.据报道,这里

https://github.com/sqlalchemy/sqlalchemy/issues/10504

Python相关问答推荐

如何使用关键参数按列对Pandas rame进行排序

Polars Select 多个元素产品

删除pandas rame时间序列列中未更改的值

如何处理必须存在于环境中但无法安装的Python项目依赖项?

无法导入已安装的模块

具有2D功能的Python十六进制图

Python主进程和分支进程如何共享gc信息?

指示组内的rejected_time是否在creation_timestamp后5分钟内

计算所有前面行(当前行)中列的值

使用pandas、matplotlib和Yearbox绘制时显示错误的年份

如何记录脚本输出

Mistral模型为不同的输入文本生成相同的嵌入

用Python解密Java加密文件

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

把一个pandas文件夹从juyter笔记本放到堆栈溢出问题中的最快方法?

Odoo 16使用NTFS使字段只读

使用groupby方法移除公共子字符串

Geopandas未返回正确的缓冲区(单位:米)

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

Cython无法识别Numpy类型