9421: XML parsing: illegal xml character(XML 解析:非法 XML 字符)
SQL Server含义
SQL Server 在将文本解析为 XML 时遇到了不允许(无效)的字符。由于该字符,转换为 XML 类型或赋值给 XML 列/变量失败。
原因
XML 1.0 中禁止的控制字符(例如 0x00-0x1F 范围内的部分字符)、编码错误(编码不匹配),或来自其他来源的损坏/未清洗数据。通常出现在 CAST(... AS XML) 或向 XML 列 INSERT 时。
解决方法
在转换为 XML 之前,从文本中去除无效字符。使源编码(UTF-8/UTF-16)与目标兼容;在 XML 声明中声明正确的编码。用 REPLACE/NCHAR 去除控制字符,或在应用层使用标准库生成并校验 XML。如果必须存储原始文本,考虑使用 NVARCHAR(MAX)。
同一数据库的其他条目
- 3729Cannot DROP because it is being referenced by object(无法 DROP,因为它正被对象引用)
- 3961Snapshot isolation transaction failed because the object was modified by a DDL statement(快照隔离事务失败,因为对象已被 DDL 语句修改)
- 1785Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths(引入 FOREIGN KEY 约束可能导致循环或多重级联路径)
- 15151Cannot find the object/principal because it does not exist or you do not have permission(找不到对象/主体,因为它不存在或您没有权限)
- 4834You do not have permission to use the bulk load statement(您没有使用大容量加载语句的权限)
- 10928Resource limit for the database has been reached (Azure SQL)(已达到数据库的资源限制)
- 40544The database has reached its size quota (Azure SQL)(数据库已达到大小配额)