0

我正在使用带有 MS SQL 驱动程序的 Python 2.7 的 pymssql。在对具有 sql_variant 列的表运行一些查询时,我得到了错误的数据。当我投射数据时,我能够得到正确的值。有什么办法可以跳过显式 CAST。

4

1 回答 1

0

一段时间以来一直在解决同样的问题,但我还没有找到任何解决方法。CAST 似乎是唯一可行的方法,所以我不得不将我的 SQL 重写为:

sql = 'SELECT *, CAST (sql_varian_field AS BIGINT) as my_field_fixed FROM myTable'

并且只是参考那里的最后一列。

虽然 pymssql 可以在 conn_properties 中连接时添加一些 sql:

pymssql.connect(server='.', user='', password='', database='', timeout=0, login_timeout=60, charset='UTF-8', as_dict=False, host='', appname=None, port='1433', conn_properties, autocommit=False, tds_version='7.1')

是否有任何 SQL 专家可以回答以下问题:是否有任何简单的 SQL 命令可以使数据库将所有 sql_variant 字段作为整个会话的某些预定义类型处理?任何时候调用 pymssql.connect 时都可以作为 conn_propeties 传递的东西?

于 2017-09-07T10:53:33.443 回答