一尘不染

将XML插入SQL Server 2008数据库

sql

您好,我试图在SQL Server 2008的表中插入一些XML数据。

XML解析:第1行,字符39,无法切换编码

数据库列filemeta使用XML数据类型,并且我已将编码切换为UTF-16,我认为这对于添加XML数据是必需的。

INSERT INTO testfiles
  (filename, filemeta) 
VALUES 
  ('test.mp3', '<?xml version="1.0" encoding="utf-16" standalone="yes"?><!--This is a test XML file--><filemeta filetype="Audio"><Comments /><AlbumTitle /><TrackNumber /><ArtistName /><Year /><Genre /><TrackTitle /></filemeta>');

救命,我被困住了。

注意:我使用XMLTextWriter创建了XML。


阅读 117

收藏
2021-03-17

共1个答案

一尘不染

是的,当您尝试将XML插入SQL Server 2008并且XML包含编码指令行时会出现问题。

我通常会使用CONVERT允许我指示SQL Server跳过那些指令的函数-使用类似以下内容的方法:

INSERT INTO testfiles
  (filename, filemeta) 
VALUES 
  ('test.mp3', CONVERT(XML, N'<?xml version="1.0" encoding="utf-16" standalone="yes"?>......', 2));

它无疑帮助我将各种编码的XML内容导入SQL Server。

请参阅有关CAST和CONVERT MSDN文档-有些低落的页面有一些款式,你可以使用CONVERTXML和一些关于他们的解释。

2021-03-17