当前位置: 首页 > 面试题库 >

如何使用Python pypyodbc获取整个VARCHAR(MAX)列

颜博达
2023-03-14
问题内容

我有一个使用ODBC连接连接到MSSQL数据库的Python程序。我正在使用的Python库是pypyodbc。

这是我的设置:

  • Windows 8.1 x64
  • SQL Server 2014 x64
  • Python 2.7.9150
  • PyPyODBC 1.3.3
  • ODBC驱动程序:SQL Server本机客户端11.0

我遇到的问题是,当我查询带有varchar(max)列的表时,内容被截断了。

我是pypyodbc的新手,我一直在疯狂搜索,并且找不到关于如何防止这种情况在pypyodbc甚至pyodbc中发生的任何信息。至少不是我一直在使用的搜索字词,而且我不知道还要尝试其他哪些短语。

我什至尝试添加SET TEXTSIZE 2147483647;到SQL查询中,但是数据仍被截断。

如何防止这种情况发生?或者,您能指出我正确的方向吗?

更新:

因此,我尝试在SQL查询中执行强制类型转换。当我这样做时,CAST(my_column as VARCHAR(MAX))它会在同一位置截断。但是,如果我这样做,则CAST(my_column as VARCHAR(8000))可以给我提供更大的文本集,但仍会截断某些内容。如果我尝试做的事情比8000我做的大,那么我会得到一个错误,那8000就是我可以使用的最大的错误。有人知道这里会发生什么吗?使用MAX不起作用似乎很奇怪。


问题答案:

好吧,我最终解决了问题。我发现此链接与一个类似的问题有关,只是不在python中,并且他们发现该问题与SQL
Server本机客户端驱动程序有关。他们建议改为使用SQL Server标准驱动程序。

因此,我将ODBC连接字符串中的驱动程序从SQL Server Native Client 11.0更改为SQL Server,并且运行良好!我正在MSSQL数据表中获取VARCHAR(MAX)列的全部内容。

我真的希望这对遇到此问题的其他人有用!祝好运!

这是链接:http :
//www.sqlservercentral.com/Forums/Topic1534163-391-1.aspx



 类似资料:
  • 问题内容: 是否可以将SQL Server 2008数据库中的列类型从更改为,而不必删除表并重新创建? 每当我尝试使用SQL Server Management Studio进行操作时,SQL Server Management Studio都会向我抛出一个错误-但是让我头疼的是,很高兴知道我是否可以更改类型而不必删除和创建。 谢谢 问题答案: 您应该能够使用TSQL做到这一点。 就像是

  • 问题内容: 我曾经用过,但是抛出了一个错误…有什么办法得到所有东西? 问题答案: 您可以尝试: 如果您还想捕获html标签,可以将它们连接到html,如下所示:

  • 问题内容: 我刚刚读到,建议将数据类型(可以存储接近2GB的char数据)替换为和版本中的数据类型。 如果我想在列内搜索任何字符串,哪个操作更快? 列使用子句? 使用该TEXT列并在此列上放置全文索引/目录,然后使用该CONTAINS子句进行搜索? 问题答案: 该类型是的替代。基本区别在于,类型将始终将数据存储在Blob中,而该类型将尝试将数据直接存储在行中,除非它超过8k限制,然后将其存储在Bl

  • 问题内容: 有些文档我无法获取文档的高度(将某些内容绝对定位在最底部)。另外,在这些页面上的底部填充似乎没有任何作用,但在高度会返回的页面上却没有作用。案例: 在Fandango上, jQuery的返回正确值 返回0 返回0 关于平装交换: jQuery的TypeError:为null 返回错误的值 返回错误的值 注意:如果有一些窍门,我具有浏览器级别的权限。 问题答案: 文档大小是浏览器兼容性的

  • 问题内容: 每当我使用该函数时,我都会以某种方式失去与其他值的所有连接,以便以后打印的行不再与我在其上最大运行的列相关。 所以我的表是: 所以如果我跑步 我会得到 因此,col3的最大值是正确的,但是没有获得该值的正确行。 我想要的是获取列的最大值并为每个用户返回该行。如果有多个最大值,即使它具有相同的用户标识,它也应返回所有用户。 问题答案: 其他数据库(例如MS SQL Server)不允许您

  • 问题内容: 在为应用程序构建架构时遇到一个问题。 何时使用和。我的意思是应该使用它的确切用例。我也曾在网上冲浪,但我能够得到确切的答案。 任何人都可以提出一些确切的用例。 问题答案: 这是针对Microsoft SQL Server的 : 是 Unicode- 每个字符2个字节,因此最大。10亿个字符;可以处理东亚语,阿拉伯语,希伯来语,西里尔字母等字符。 就是 非Unicode -每个字符1个字