You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server JSON查询报错:JSON格式异常排查与解决请求

问题原因分析

错误Msg 13609, Level 16, State 4明确指向位置447的双引号"是非法字符,核心原因是这条JSON数据格式不规范:

  • 要么是该位置的双引号未正确转义(字符串内部的双引号必须用\转义,比如"content:\"test\""而不是"content:"test"")
  • 要么是JSON结构出现了多余/缺失的双引号,比如键名没被双引号包裹、字符串未正确闭合
排查步骤
  1. 先找出所有格式无效的JSON记录:
    SELECT report_json, LEN(report_json)
    FROM [dbo].[clia_report]
    WHERE ISJSON(report_json) = 0
    
    ISJSON()函数会直接返回0标记格式错误的行
  2. 定位错误位置的具体内容:
    对找到的错误行,截取位置447前后的片段查看细节:
    SELECT SUBSTRING(report_json, 400, 100)
    FROM [dbo].[clia_report]
    WHERE ISJSON(report_json) = 0
    
    这样能直观看到错误点附近的JSON结构,判断是转义问题还是结构错误
解决办法

根据排查结果针对性处理:

  • 若是未转义的双引号:修正该字段里的非法引号,比如把字符串内的"替换为\",示例语句:
    UPDATE [dbo].[clia_report]
    SET report_json = REPLACE(report_json, '错误的"内容"', '修正后的\"内容\"')
    WHERE 你的筛选条件 -- 务必定位到具体错误行,别批量瞎改
    
  • 若是结构错误:直接修正对应位置的JSON结构,确保所有键名用双引号包裹,字符串首尾闭合正确
  • 预防后续问题:以后插入或更新JSON数据时,别手动拼接字符串,用正规的JSON序列化工具生成合法JSON(比如C#的Newtonsoft.Json、Python的json模块),从源头避免格式错误

内容的提问来源于stack exchange,提问作者user13444194

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:06:59