Python 与 MS SQL - 截断输出

2023-12-01

我尝试从 Linux 盒子使用 python 连接到 MSSQL DB(Python 2.7, 乌班图11.04)。我收到的输出被截断为 500 个字符。请参阅下面的脚本和配置。怎么解决呢?我认为问题出在 ODBC 驱动程序中或附近。

代码(pyodbc、pymssql):

conn = pymssql.connect(host='my_remote_host', user='ro_user',
password='password', database='current', as_dict=True)
cur = conn.cursor()
cur.execute(sql)
for i in cur:
    print i
conn.close()

cnxn = pyodbc.connect(driver='FreeTDS', server='my_remote_host', database='current', uid='ro_user', pwd='password')
cursor = cnxn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
...
cnxn.close()  

我没有对 MS SQL DB 的写访问权限,它实际上是不属于我们系统的远程服务器。

SQL:

sql = '''
        SELECT  Req.ID,
        ShReq.Summary AS [Short Name],
        ShReq.ALM_SharedText AS [Text],
        Req.ContainedBy,
        Req.DocumentID
FROM    CurMKS..ALM_Requirement Req
        JOIN CurMKS..ALM_SharedRequirement ShReq ON Req.[References] = ShReq.ID
        WHERE DocumentID = 1111111'''

问题在于ShReq.ALM_SharedText场地。它被截断为 255 个字符,但使用如下转换convert(text,ShReq.ALM_SharedText) AS TEXT and CAST(ShReq.ALM_SharedText AS TEXT)我将截断增加到 500 个字符。但是,有些字段的文本长度超过 500 个字符,并且它们会被截断。

ODBC 设置:

/etc/odbc.ini:

[MKS]
#Driver=FreeTDS
Driver=/usr/lib/odbc/libtdsodbc.so
Description=Database
Trace=No
Server=my_remote_host
Port=1433
Database=current
UID=ro_user
PWD=password
TDS Version=8.0

/etc/odbcinst.ini:

[FreeTDS]
Description=FreeTDS
Driver=/usr/lib/odbc/libtdsodbc.so
UsageCount=1

/etc/freetds/freetds.conf:

[global]
        tds version = 8.0
;       dump file = /tmp/freetds.log
;       debug flags = 0xffff
;       timeout = 10
;       connect timeout = 10
;       text size = 2097152


[mksserver]
      host = my_remote_host
      port = 1433
      tds version = 8.0
      client charset = UTF-8

有什么想法可以解决吗?


改变text size in global的部分freetds.conf最大(4294967295 字节):

[global]
    tds version = 8.0
    text size = 4294967295

还得设置TEXTSIZE在 SQL 中最大(2147483647 字节):

sql = """
    SET TEXTSIZE 2147483647;
    SELECT  Req.ID,
            ShReq.Summary AS [Short Name],
            ShReq.ALM_SharedText AS [Text],
            Req.ContainedBy,
            Req.DocumentID
    FROM    CurMKS..ALM_Requirement Req
            JOIN CurMKS..ALM_SharedRequirement ShReq ON Req.[References] = ShReq.ID
    WHERE DocumentID = 111111;
      """
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 与 MS SQL - 截断输出 的相关文章

随机推荐

  • 正则表达式替换除特定模式之外的所有内容

    我正在寻找提取 50 来自或多或少具有这种格式的字符串 The 50 is in here somewhere 我还想摘录一下 50 50 25 从这样的字符串 50 of 50 is 25 Regex Match 似乎是明显的竞争者 然而
  • 通过多个分组将长形重塑为宽形

    我的数据如下所示 Smoker PtNo Day Hour FEV1 timename 1 0 1 1 0 3 26 d1h0 2 0 1 1 2 3 05 d1h2 3 0 1 1 4 3 02 d1h4 4 0 1 1 6 3 27 d
  • 使用 Facebook API PHP 在某人的墙上发帖

    是否可以编写一个在某人的墙上发布消息的应用程序 并且如果该用户尚未接受此时提示的许可 这是我的代码 attachment array access token gt access token message gt message name
  • C# 文件处理 - 创建文件并打开

    这就是我在文件上创建和写入的内容 Create Directory path Create Name file name private void Create File string Create Directory string Cre
  • 调用always_inline '__m256d _mm256_broadcast_sd(const double*)' 时内联失败

    我正在尝试运行由我的朋友创建的 Visual Studio cpp 项目 我正在尝试在没有 VS 的情况下运行该文件 但我收到了错误列表 全部采用相同的格式 inlining failed in call to always inline
  • C# json.net 子对象的自定义序列化

    我正在使用 JSON NET 将类序列化为 JSON 该类包含一个由项目列表组成的属性 我想以自定义方式序列化项目本身 通过使用自定义的 ContractResolver 动态地仅包含某些属性 所以基本上我想用 DefaultContrac
  • 在 php 中使用 fopen() 创建文件时的默认权限是什么?

    如果调用时文件不存在 fopen
  • 彩色动画内容演示器

    我无法在 ContentPresenter NormalTextDay 中创建动画或自定义颜色 此错误出现在我的 XAML 中 System Windows Media Animation ColorAnimation 动画对象无法用于对属
  • 需要在 Apache 上允许编码斜杠

    我目前正在尝试将 URL 放入 URL 中 例如 http example com url http 3A 2F 2Fwww url2 com 我知道我必须对 URL 进行编码 我已经这样做了 但现在我得到了404从服务器而不是我的应用程序
  • 对 JTable 进行排序会导致 NullPointerException

    我有一个 JTable 当单击相应的按钮时 它开始填充在后台进行的文件树遍历的结果 这很好用 然后我决定对表格进行排序 经过一番阅读后 我创建了一个 TableRowSorter 并设置表来使用它 它似乎有效 但经过仔细检查 我发现一些文件
  • Bing 地图 API 与 Android 应用程序的集成程度如何?

    首先我想问一下 你能整合吗 Bing Maps在 Android 应用程序中 其次 如果可以的话有什么好处Bing已经结束Google Maps API反之亦然 Updates This Android SDK v1 5现已弃用 看到这个链
  • PreparedStatement 如何避免或防止 SQL 注入?

    我知道PreparedStatements 可以避免 防止SQL 注入 它是如何做到的 使用PreparedStatements 构造的最终表单查询是字符串还是其他形式 考虑做同一件事的两种方法 PreparedStatement stmt
  • Windows 批处理文件中的传递、转义和识别特殊字符

    我编写了一个脚本 它会遍历输入字符串的每个字符 并根据我需要执行不同操作的字符 只要我的输入不包含任何空格或双引号字符 这种方法就可以很好地工作 我知道我必须转义特殊字符 但由于某种原因 我似乎对空格和双引号做错了 如果我使用参数 ab c
  • 打印图像的实际尺寸

    嗨 朋友们 我想打印我生成的图片 我使用以下代码 Printer BeginDoc Printer Canvas Draw 0 0 img1 Picture Bitmap Printer EndDoc 它可以工作 但它打印的图像非常小 我如
  • 通过序数索引访问红黑树

    我有一棵红黑树 二叉树 所有叶子都在2层以内 我可以浏览节点 向左 向右或父节点 我知道节点的全部数量 我必须找到树中第 N 个最小的元素 有没有比 O n 更快的方法 有什么通过索引优化访问的想法吗 在每个节点 X 中 您应该存储以 X
  • 如何确定文件对于 *nix 上的进程是否是只读的? [复制]

    这个问题在这里已经有答案了 使用 stat 函数 我可以获得以下内容的读 写权限 owner user other 但这不是我想要的 我想知道我的进程 即我正在编写的应用程序 的文件的读 写权限 仅当我知道我的进程是否作为文件的所有者 用户
  • 从 BigQuery 将数据导出到 GCS - 拆分文件大小控制

    我目前正在将数据从 Bigquery 导出到 GCS 存储桶 我使用以下查询以编程方式执行此操作 query request bigquery service jobs DATASET NAME PROJECT ID DATASET ID
  • TYPO3:存储库->findAll() 不起作用

    我正在构建一个带有后端模块的扩展 当我打电话给findAll 方法它返回一个 QueryResult 对象 我尝试用以下方法检索对象查找按Uid 并且它确实有效 我在打字稿中设置了存储pid plugin tx hwforms persis
  • VS2010(CUDA)中导出DLL的问题

    我在构建 DLL 解决方案时遇到了麻烦 我正在制作用于 LabVIEW 2010 的 DLL 以便具有 CUDA 功能 但是 我想要导出的每一个函数都收到链接器错误 LNK2019 include LVCUDA h include C Pr
  • Python 与 MS SQL - 截断输出

    我尝试从 Linux 盒子使用 python 连接到 MSSQL DB Python 2 7 乌班图11 04 我收到的输出被截断为 500 个字符 请参阅下面的脚本和配置 怎么解决呢 我认为问题出在 ODBC 驱动程序中或附近 代码 py