【问题标题】:python - pyodbc setting for increase package size in stored procedure paramspython - 在存储过程参数中增加包大小的 pyodbc 设置
【发布时间】:2015-08-10 08:15:11
【问题描述】:

我使用 Python2.7 和 pyodbc==3.0.7 连接到 SQL Server。

一切正常,但是当我调用带有 480 个字符的字符串参数的存储过程时,它返回以下错误:

代码:

cursor.execute("{CALL SP_NAME(?)}", (param))

错误:

驱动程序没有提供错误!

但是当我用更少的字符数调用SP 时,它可以工作。

那么,如何在pyodbc中增加传输包大小?

注意:此问题在 Windows 操作系统中不存在,但在 Unix 操作系统中出现。

【问题讨论】:

  • 一些想法。首先,你试过pyodbc 3.0.10吗?我已经升级没有问题。也许尝试将其作为 unicode 发送?有机会在 Python 3 上尝试吗?我问的原因是文档包含此处的 ODBC 数据类型到 python 数据类型的转换:github.com/mkleehammer/pyodbc/wiki/Data-Types 它可能有助于缩小问题范围。您能否为可靠的重现添加更多代码?
  • 这是我引用的 3.0.10 的文档:github.com/mkleehammer/pyodbc/wiki/Data-Types
  • @FlipperPA 感谢您的回复。我也试过pyodbc 3.0.10,但它还不行。关于python3,这不是一个好主意。我有很多与 python2.7 一起工作的模块。我计算了 pyodbc 中的最大参数长度,即字符串的 256 个字符。它不适用于这个值。现在我正在阅读您的参考资料。如果我有一些有用的东西,请告诉你;)

标签: sql-server django python-2.7 pyodbc


【解决方案1】:

pyodbc 模块在 Unix 操作系统中每次传输的最大长度为 255 个字符。我通过这个引用http://www.connectionstrings.com/sql-server/在“连接字符串”中检查了一些属性,如packet size,但它不影响。

如果您需要增加它,您需要在 Unix 基础系统中更改 unixODBC-devel 包。或者减少每个 SP 调用中的数据包大小。

【讨论】:

    猜你喜欢
    • 2012-07-01
    • 2015-09-06
    • 1970-01-01
    • 2015-09-06
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多