DBAtlas · 데이터베이스 운영 아틀라스

9421: XML parsing: illegal xml character

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)를 고려한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목