sql - SQL Server json 被截断(即使使用 NVARCHAR(max) )
问题描述
DECLARE @result NVARCHAR(max);
SET @result = (SELECT * FROM table
FOR JSON AUTO, ROOT('Data'))
SELECT @result;
这将返回一个约 43000 个字符的 json 字符串,其中一些结果被截断。
SET @result = (SELECT * FROM table
FOR JSON AUTO, ROOT('Data'))
这将返回一个约 2000 个字符的 json 字符串。有什么办法可以防止截断吗?即使在处理一些大数据并且字符串是数百万个字符时?
解决方案
我没有找到“官方”答案,但似乎这是新的“FOR JSON”语句的错误,它将结果拆分为 2033 行字符长。正如这里所推荐的,到目前为止,最好的选择是遍历连接返回行的结果:
string result = "";
while (reader.Read())
{
result += Convert.ToString(reader[0]);
}
顺便说一句,似乎最新版本的 SSMS 已经在应用这种解决方法来在一行中显示结果。
推荐阅读
- sql-server - 我们可以将 SSRS 输出存储为日志表吗?以便显示昨天数据和今天数据之间的差异
- ruby-on-rails - 在 Ruby on Rails 5 中验证失败后重新渲染 _form.html.erb 时失败
- java - 关闭自动提示 EditText 的数字?
- python - SublimeText3 中的 Python3 配置 OSX
- python - AttributeError: 'list' 对象没有属性 'shape' 问题
- encryption - Native Webrtc如何禁用PeerConnection的DataChannel加密
- php - 在 php 中启动循环
- angularjs - 意外的令牌 < SystemJS 生产版本
- jenkins - Saltstack 结果失败但 Jenkins 完成:成功
- c# - Xamarin 形成网格不呈现行/列