如何修复SQL错误:JSON文本格式不正确,位置1出现意外字符'.'
问题原因及解决方案
错误根源
声明NVARCHAR类型变量时未指定长度,SQL Server中NVARCHAR默认长度为1,导致JSON字符串被截断为单个字符,OPENJSON解析时自然识别为格式错误的JSON。
解决步骤
- 为
NVARCHAR变量指定足够的长度,推荐使用NVARCHAR(MAX)(适用于任意长度的JSON),或根据实际JSON长度指定具体数值(如NVARCHAR(200))。
修正后的代码
DECLARE @Json NVARCHAR(MAX) = '{"collection":[{"Type":"example_type","Value":"example_data"}]}'; SELECT * FROM OPENJSON(@Json) AS Options;
补充说明
SQL Server中,未指定长度的NVARCHAR会被默认设置为长度1,仅能存储单个字符。只有指定足够长度后,变量才能完整保存JSON字符串,OPENJSON才能正常解析结构。
内容的提问来源于stack exchange,提问作者JPA
相关产品推荐
相关产品推荐

