将 XML 插入 SQL Server 2008 数据库
您好,我正在尝试将一些 XML 数据插入到 SQL Server 2008 上的表中。但是我总是抛出此错误;
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。
Hello I'm trying to insert some XML data into a table on SQL Server 2008. However I keep getting thrown this error;
XML parsing: line 1, character 39, unable to switch the encoding
The database column filemeta uses the XML datatype, and I've switch the encoding to UTF-16 which I believe is necessary for adding XML data.
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>');
Help, I'm stuck.
NB: I created the XML with XMLTextWriter.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,当您尝试将 XML 插入 SQL Server 2008 并且 XML 包含编码指令行时,会出现问题。
我通常会使用 CONVERT 函数,它允许我指示 SQL Server 跳过这些指令 - 使用类似这样的内容:
它确实帮助我将各种编码的 XML 内容导入 SQL Server。
请参阅有关 CAST 和 CONVERT 的 MSDN 文档 - 页面下方有您可以使用
CONVERT
和XML
使用多种样式以及有关它们的一些说明。Yes, there are issues when you try to insert XML into SQL Server 2008 and the XML contains an encoding instruction line.
I typically get around using the
CONVERT
function which allows me to instruct SQL Server to skip those instructions - use something like this:It has definitely helped me get various encoded XML stuff into SQL Server.
See the MSDN docs on CAST and CONVERT - a bit down the page there's a number of styles you can use for
CONVERT
withXML
and some explanations about them.您只需在 XML 字符串前面包含 N 即可使其成为 unicode。
You just need to include N in front of your XML string to make it unicode.
这对我有用,没有任何错误:
This worked for me without any errors: