首页 > 解决方案 > pymssql 相交错误 - 无法在 int 上调用方法

问题描述

我有一个 SQL 语句,当我使用 Server Managament Studio 时它工作正常,我得到了正确的输出:

SELECT BEZ.[BEZNR6]
  FROM BEZ BEZ WHERE BEZ.Shape.STIntersects(geometry::Point(483889.0702499999, 5238377.560075896, 32633))= 1;

现在我想在带有 pymssql(2.1.5) 的 Python(2.7.18) 脚本中使用它:

with conn.cursor(as_dict=True) as cursor:
    abfrage='''SELECT BEZ.[BEZNR6]
        FROM [bd].[bda].[BEZ] BEZ WHERE BEZ.Shape.STIntersects(geometry::Point(%s, %s, 32633))= 1'''
    cursor.execute(abfrage, (483889.0702499999, 5238377.560075896))
    query = cursor.fetchall()

我收到一条错误消息:

pymssql.OperationalError: (258, 'Cannot call methods on int.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n')

我究竟做错了什么?

标签: pythonsql-serverpymssql

解决方案


问题是 db 用户。python 脚本使用了没有足够权限的用户。使用具有更多权限的其他用户,而不是脚本正常工作。


推荐阅读