【问题标题】:PyMsSQL reading bad data for sql_variant columnsPyMsSQL 读取 sql_variant 列的错误数据
【发布时间】:2016-12-20 05:24:26
【问题描述】:

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

【问题讨论】:

  • 使用基于 python 的 adodb api,不需要这种显式转换。但是由于使用 adodb api 的一些限制,我正在尝试 PyMSMSql。是否总是需要这种 sql_variant 列的强制转换?请指导,因为我是 pymssql 的新手。

标签: python-2.7 pymssql sql-variant


【解决方案1】:

一段时间以来一直在解决同样的问题,但我还没有找到任何解决方法。 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 传递的东西?

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 2016-07-30
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    相关资源
    最近更新 更多