为什么我的查询得到HY000 pyodbc错误



我的Sybase查询非常简单,例如:

select adjusted_weight from v_temp_idx_comp where ric_code='0005.HK' and index_ric_code='.HSI'

查询返回除一列以外的所有列的结果-> adjusted_weight。每当我在查询中包含此列时,我都会得到以下错误

pyodbc.Error: 'HY000', 'The driver did not supply an error!')

adjusted_weight列数据类型为正确的数字。事实上,当我使用其他应用程序(使用其他驱动程序)运行此查询时,我得到的结果没有任何错误。我只有在使用pyodbc从python查询时才有问题。

我使用的是windows 7机器,python版本2.6.1 Sybase驱动程序:{Adaptive Server Enterprise}

我的专栏怎么了?如何解决这个问题?

已解决此问题。问题在于我正在查询的视图。其中一列的精度(使用某些操作自动计算)超过了sybase标准所支持的精度。有些驱动程序可以提前处理它,但有些不能。Sybas自己的驱动程序没有正确报告错误

当使用pyodbc的预编译版本不能在arm cpu上工作时,如mac M1,会抛出此错误。解决方案如下:这个包没有被正确编译,你可以卸载,在我的例子中是pyodbc,然后重新安装它。如果使用brew,它将是这样的:

pip uninstall pyodb

并在本地编译安装:

pip install --no-binary :all: pyodbc

最新更新