代码之家  ›  专栏  ›  技术社区  ›  Leth

尝试调用SQL Server中的存储过程以将XML数据插入增量表时出现“无法切换编码”警告

  •  0
  • Leth  · 技术社区  · 6 年前

    我正在使用Biztalk将XML文件中的数据插入到SQL server中。为此,我创建了一个存储过程,根据XML文件中的数据将新记录插入到表中。

    在消息日志中,它抛出以下警告:

    而且数据没有插入到我的表中。

    我试过把它转换成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采用什么编码?

    <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>
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Leth    6 年前

    我设法改正了错误。问题出现在我的自定义发送管道中,该管道使用默认编码类型向文件添加了XML声明。