GVKun编程网logo

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

31

本文的目的是介绍如何使用Pythonpypyodbc获取整个VARCHAR的详细情况,特别关注MAX列的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何使用Pyth

本文的目的是介绍如何使用Python pypyodbc获取整个VARCHAR的详细情况,特别关注MAX列的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何使用Python pypyodbc获取整个VARCHAR的机会,同时也不会遗漏关于IronPython 通过 pypyodbc 使用 SQLAlchemy 的方法、JPA-如何在DDL中将字符串列设置为varchar(max)、nvarchar(50)与nvarchar(max)的含义、Oracle中varchar(max)的等效项是什么?的知识。

本文目录一览:

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

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

我有一个使用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 asVARCHAR(MAX))它会在同一位置截断。但是,如果我这样做,则CAST(my_column asVARCHAR(8000))可以给我提供更大的文本集,但仍会截断某些内容。如果我尝试做的事情比8000我做的大,那么我会得到一个错误,那8000就是我可以使用的最大的错误。有人知道这里会发生什么吗?使用MAX不起作用似乎很奇怪。

答案1

小编典典

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

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

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

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

IronPython 通过 pypyodbc 使用 SQLAlchemy 的方法

IronPython 通过 pypyodbc 使用 SQLAlchemy 的方法

SQLAlchemy 是目前在 Python 界大热的技术,但由于 IronPython 数据库接口库的缺乏,IronPython 却一直无法使用此神器。


现在,借助于纯 Python 的 ODBC 接口库 pypyodbc,通过简单扩展 SQLAlchemy,IronPython 也可以用上 SQLAlchemy 了。


首先为 IronPython 安装 pypyodbc


第一步:直接将 pypyodbc.py 放置于 IronPython 的 IronPython 2.7\Lib\site-packages\ 目录下。


然后我们简单扩展 SQLAlchemy 以支持 pypyodbc


第二步:复制 IronPython 2.7\Lib\site-packages\sqlalchemy\connectors\pyodbc.py 为 pypyodbc.py,全文替换所有的 pyodbc 为 pypyodbc


第三步:复制 IronPython 2.7\Lib\site-packages\sqlalchemy\dialects\mssql\pyodbc.py 为 pypyodbc.py,全文替换所有的 pyodbc 为 pypyodbc


第四步:修改 IronPython 2.7\Lib\site-packages\sqlalchemy\dialects\mssql\__init__.py, 在 import 行最后加入 pypyodbc
from sqlalchemy.dialects.mssql import base, pyodbc, adodbapi, \
pymssql, zxjdbc, mxodbc, pypyodbc


JPA-如何在DDL中将字符串列设置为varchar(max)

JPA-如何在DDL中将字符串列设置为varchar(max)

使用JPA,可以为属性生成DDL:

@Columnfinal String someString;

将会 someString varchar(255) null

@Column(length = 1337)final String someString;

会屈服someString varchar(1337) null

但是我怎样才能生产它someString varchar(max) null呢?

是否可以使用length-attribute,还是我需要使用columnDefinition-attribute?

答案1

小编典典

几个月过去了,获得了新知识,所以我将回答我自己的问题:

@Lob@Columnfinal String someString;

产生最正确的结果。随着版本hbm2ddl我使用,这将转化为类型textSqlServerDialect。由于varchar(max)可以替代textSQL
Server的较新版本,因此希望hbm2ddl可以产生较新版本的SQL
Server,varchar(max)而不是text使用这种类型的映射(目前,我只使用过时的Hibernate版本。)

nvarchar(50)与nvarchar(max)的含义

nvarchar(50)与nvarchar(max)的含义

如果下面两个表的唯一区别是nvarchar(50)vs,nvarchar(max)并且每个字段中的字符串范围是1到50个字符,那么它们在存储和性能方面的一般区别是什么?这是在SQL
Server 2005中。

表格1

firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)

表2

firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)

Oracle中varchar(max)的等效项是什么?

Oracle中varchar(max)的等效项是什么?

Oracle中varchar(max)的等效项是什么?

CLOB?

今天关于如何使用Python pypyodbc获取整个VARCHARMAX列的介绍到此结束,谢谢您的阅读,有关IronPython 通过 pypyodbc 使用 SQLAlchemy 的方法、JPA-如何在DDL中将字符串列设置为varchar(max)、nvarchar(50)与nvarchar(max)的含义、Oracle中varchar(max)的等效项是什么?等更多相关知识的信息可以在本站进行查询。

本文标签: