您好,我正在尝试将一些 XML 数据插入到 SQL Server 2008 上的表中。但是我一直收到此错误;
XML parsing: line 1, character 39, unable to switch the encoding
数据库列 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。
最佳答案
是的,当您尝试将 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。
参见 MSDN docs on CAST and CONVERT - 在页面下方有许多样式可以用于 CONVERT
with XML
以及一些关于它们的解释。
关于sql - 将 XML 插入 SQL Server 2008 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628846/