You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server导入XML数据至表出现空记录,请求排查代码问题

XML导入SQL Server字段为空的问题排查与修复

你的代码能生成行但记录为空,核心是XPath定位和方法使用错误,具体问题和修正方案如下:

问题分析

  1. 错误使用query方法:CompanyName是<Addressee>节点的属性而非子元素,query('CompanyName')无法定位到目标内容,属于无意义调用。
  2. XPath路径上下文错误:通过CROSS APPLY MY_XML.nodes('Publication/Addressee')后,Pub已经指向每个独立的<Addressee>节点,此时不需要再从根节点Publication/Addressee开始定位属性。

修正后的代码

INSERT INTO XMLCommTest (CompanyName)
SELECT
   Pub.value('@CompanyName', 'VARCHAR(250)')
FROM (SELECT CAST(MY_XML AS xml)
      FROM OPENROWSET(BULK 'C:\cfs\XMLCommTest\LBA0_Comm_Stmts_305741_202301310000.txt', SINGLE_BLOB) AS T(MY_XML)) AS T(MY_XML)
CROSS APPLY MY_XML.nodes('Publication/Addressee') AS MY_XML (Pub);

关键修改说明

  • 移除了多余的query('CompanyName')调用,直接通过value方法读取属性值。
  • 将XPath路径改为@CompanyName,利用Pub的节点上下文直接获取当前<Addressee>的CompanyName属性。

内容的提问来源于stack exchange,提问作者Jessica Nutt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:15:23