繁体   English   中英

pymssql问题与255个字符后切断

[英]pymssql issue with cutting off after 255 characters

我已经安装了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个。

这似乎是pymssql(或更确切地说是底层协议)的已知问题

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM