我正在使用Biztalk将数据从XML文件插入SQL服务器。为此,我创建了一个存储过程,该过程根据 XML 文件中的数据将新记录插入表中。
将文件放在接收位置时,我遇到编码问题。
在消息日志中,它会引发以下警告:
XML 解析:第 1 行,字符 38,无法切换编码
并且数据没有插入到我的表中。
XML 文件以 UTF-8-BOM 格式编码。
我尝试将其转换为 UTF-16、UTF-8,但它给出了相同的警告。
在我的SQL存储过程中,我声明了"iXml"变量并将其转换为NVARCHAR(MAX(:
@iXml XML
AS
BEGIN
SET @iXml = CAST(CAST (@iXml AS NVARCHAR(MAX)) AS XML)
如何正确编码我的 XML 文件?SQL 期望从 XML 中获得什么编码?
编辑:XML代码段
<ns0:Vejstykke xmlns:ns0="http://Company.Vejregister.Schemas.Vejstykke_XML">
<Data>
<sekvensnummer>483523</sekvensnummer>
<tidspunkt>2018-01-14T02:08:38.432Z</tidspunkt>
<operation>insert</operation>
<id/>
<kommunekode>0326</kommunekode>
<vejkode>2901</vejkode>
<oprettet/>
<ændret/>
<navn>Hedvigsvej</navn>
<vejnavn>Hedvigsvej</vejnavn>
<navngivenvej_id/>
</Data>
我设法修复了错误。问题出在我的自定义发送管道中,该管道使用默认编码类型向文件添加了 XML 声明。