pymssql问题,在255个字符后切断

时间:2015-07-09 17:59:52

标签: string max string-length pymssql

我已经安装了pymssql(使用_mssql)版本1.0.2,我注意到当我开始查看结果集中的字段时,它似乎切断了最多255个字符的大文本字段。我在互联网上搜索任何提及但没有发现任何内容 - 我不知道为什么它会在这一点上切断字符串,但数据库肯定会返回比这更长的字符串。任何帮助都表示赞赏 - 它可以像版本升级一样简单,还是我需要解决的问题?

谢谢!

根据您的要求,我正在插入一个模糊的代码片段,详细说明我所说的内容 - 这是Ubuntu系统上的Python脚本:

import sys
import shutil
import fileinput
import os
import _mssql

myServer = 'hostIP'
myUID = 'userID'
myPW = 'mypass'
myDB = 'theDBName'
theID  = 'ABC123'

myConn = _mssql.connect(server=myServer, user=myUID, password=myPW, database=myDB)
myConn.execute_query("SELECT method FROM myTable WHERE id = '" + theID + "'")

for myRow in myConn:
  method = myRow["method"]
  len(method) # This prints out 255
  len(myRow["method")) # This prints out 255

myConn.close()

仅供参考:从数据库返回的字符串长度超过900个字符,但我只看到它的前255个字符。

1 个答案:

答案 0 :(得分:0)

这似乎是带有pymssql的known issue(或更确切地说,是基础协议)。

  

varchar和nvarchar数据限制为255个字符,较长的字符串将被静默修剪。   这是TDS协议的已知限制。解决方法是将行或表达式CAST或CONVERT转换为文本数据类型,该类型能够返回4000个字符。