我有一个查询,使用类似于此的查询将一些表格数据转换为JSON-esque字符串数组:
SELECT cr.TableId AS Id,
cast(quotename(
stuff(
(SELECT cast(',' AS VARCHAR(max)) + quotename(cast(li.ImageUrl AS VARCHAR(max)), '"')
FROM [DSP].[CreativeLibraryImage] cli WITH (nolock)
INNER JOIN [DSP].[LibraryImage] li WITH (nolock)
ON li.LibraryImageId = cli.[CreativeLibraryImageId]
WHERE cli.TableId = cr.TableId
FOR xml path('')
), 1, 1, ''
) --stuff
) --quotename
AS VARCHAR(max)
) --cast
AS ImagePaths
FROM MyTable cr WITH (nolock);
我得到"字符串或二进制数据将被截断"在我的查询中途出现错误,但我认为我已将所有varchar数据转换为varchar(max)
数据,因此我不应该有任何字符串长度问题。显然,这个表格数据已经成为一个广泛的专栏,但是我无法看到它可能会被截断的位置。
有人可以告诉我可能导致这种情况的原因,以便我可以相应地进行补偿吗?
答案 0 :(得分:1)
直接来自quotename
的{{1}}:
' character_string'是一串Unicode字符数据。 character_string是sysname,限制为128个字符。输入 大于128个字符返回NULL。