Mar*_*nio 7 database hibernate sql-server-2008 varcharmax
好的我正在使用SQL Server 2008并且有一个类型的表字段VARCHAR(MAX).问题是当使用保存信息时Hibernate,VARCHAR(MAX)字段的内容会被截断.我在应用服务器或数据库服务器上看不到任何错误消息.
该字段的内容只是一个纯文本文件.此文本文件的大小为383KB.
这是我到目前为止解决此问题所做的工作:
将数据库字段从VARCHAR(MAX)TEXT 更改为发生同样的问题.
使用SQL Server Profiler,我注意到
数据库服务器正在接收全文内容,但由于某些原因,在尝试查看带有截断问题的SQL时,分析器会冻结.就像我说的那样,就在它冻结之前,我
确实注意到正在接收全文文件内容(383KB),所以它似乎可能是数据库问题.
以前有人遇到过这个问题吗?是什么原因导致这种截断?
注意:只是想提一下我刚刚进入SQL Studio并只是复制TEXT字段内容并将其粘贴到Textpad.这就是我注意到它被截断的方式.
提前致谢.
Aar*_*and 19
您的问题是您认为Management Studio将向您提供所有数据.它没有.转到工具>选项>查询结果> SQL Server.如果您使用"结果到网格",请更改"非XML数据"的"检索到的最大字符数"(请注意,"结果到网格"将消除任何CR/LF).如果您使用结果文本,请更改"每列中显示的最大字符数".

您可能想要输入更多,但您可以在Management Studio中返回的最大值是:
65535 for Results to Grid
8192 for Results to Text
Run Code Online (Sandbox Code Playgroud)
如果您真的想要查看Management Studio中的所有数据,可以尝试将其转换为XML,但这也存在问题.首先将Results To Grid> XML数据设置为5 MB或无限制,然后执行:
SELECT CONVERT(XML, column) FROM dbo.table WHERE...
Run Code Online (Sandbox Code Playgroud)
现在,这将产生一个网格结果,其中链接实际上是可点击的.这将打开一个新的编辑器窗口(它不会是一个查询窗口,因此不会有执行按钮,IntelliSense等),您的数据将转换为XML.这意味着它将替换>为>等.这是一个简单的例子:
SELECT CONVERT(XML, 'bob > sally');
Run Code Online (Sandbox Code Playgroud)
结果:

当您单击网格时,您将看到以下新窗口:

(它确实有智能感知,验证XML格式,这就是你看到波浪形的原因.)
回到RANCH
如果你只是想要进行健全性检查而不想真正想要将所有383K复制到其他地方,那就不要了!只需检查使用:
SELECT DATALENGTH(column) FROM dbo.table WHERE...
Run Code Online (Sandbox Code Playgroud)
这应该表明您的数据是由数据库捕获的,问题是工具和验证方法.
| 归档时间: |
|
| 查看次数: |
14082 次 |
| 最近记录: |