python - 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')
我究竟做错了什么?
解决方案
问题是 db 用户。python 脚本使用了没有足够权限的用户。使用具有更多权限的其他用户,而不是脚本正常工作。
推荐阅读
- date - 纪元时间戳的 UTC 值不正确
- python - pyplot.figure() 在 PyCharm 调试模式下创建并显示图形
- c++ - 如何摆脱 C++ 中未解决的外部符号“私有:静态字符”错误?
- git - 在提交消息中合并 https://github.com/... 的分支 'master'
- ios - 是否可以有一个不覆盖整个屏幕的滚动视图?
- java - 是否可以使用 Spring Security 实时加载自定义配置文件?
- swift - 如何更改 Facebook 确认对话框项目名称?
- javascript - 提交表单前异步坐标抓取
- clojure - 如何为接受序列参数的函数编写 Clojure 规范?
- python - 同时更改两个 Python 列表的索引