gpt4 book ai didi

database - SQL Server 字段被截断

转载 作者:太空狗 更新时间:2023-10-30 01:46:24 28 4
gpt4 key购买 nike

好的,我正在使用 SQL Server 2008,并且有一个 VARCHAR(MAX) 类型的表字段。问题是当使用 Hibernate 保存信息时,VARCHAR(MAX) 字段的内容被截断了。我在应用程序服务器或数据库服务器上都没有看到任何错误消息。

该字段的内容只是一个纯文本文件。此文本文件的大小为 383KB。

这是我到目前为止为解决此问题所做的工作:

  1. 将数据库字段从 VARCHAR(MAX) 更改为 TEXT 并且相同出现问题。

  2. 使用了 SQL Server Profiler,我注意到全文内容正在制作中
    由数据库服务器接收,但由于某种原因,探查器在尝试时卡住 查看有截断问题的SQL。就像我说的,就在它结冰之前,我
    确实注意到正在接收全文文件内容(383KB),所以看起来 这可能是数据库问题。

有没有人遇到过这个问题?知道是什么导致了这种截断吗?

注意:只是想提一下,我只是进入 SQL Studio 并复制 TEXT 字段内容并将其粘贴到 Textpad。这就是我注意到它被截断的原因。

提前致谢。

最佳答案

您的问题是您认为 Management Studio 会为您提供所有数据。它没有。转到工具 > 选项 > 查询结果 > SQL Server。如果您正在使用 Results to Grid,请将“Maximum Characters Retrieved”更改为“Non XML data”(请注意,Results to Grid 将消除任何 CR/LF)。如果您使用结果转文本,请更改“每列中显示的最大字符数”。

enter image description here

您可能想输入更多,但在 Management Studio 中您可以返回的最大值是:

65535 for Results to Grid
8192 for Results to Text

如果您真的想在 Management Studio 中查看所有数据,您可以尝试将其转换为 XML,但这也有问题。首先将 Results To Grid > XML data 设置为 5 MB 或无限制,然后执行:

SELECT CONVERT(XML, column) FROM dbo.table WHERE...

现在这将产生一个网格结果,其中链接实际上是可点击的。这将打开一个新的编辑器窗口(它不是查询窗口,因此不会有执行按钮、IntelliSense 等),您的数据已转换为 XML。这意味着它将用 > 等替换 >。这是一个简单的示例:

SELECT CONVERT(XML, 'bob > sally');

结果:

enter image description here

当你点击网格时,你会看到这个新窗口:

enter image description here

(它确实有点像 IntelliSense,可以验证 XML 格式,这就是您看到波浪线的原因。)

回到牧场

如果您只是想进行完整性检查而不是真的想将所有 383K 复制到其他地方,那就不要这样做!只需检查使用:

SELECT DATALENGTH(column) FROM dbo.table WHERE...

这应该表明您的数据已被数据库捕获,问题在于您的工具和验证方法。

(我已经写了 a tip about this here 。)

关于database - SQL Server 字段被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11039552/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com