【问题标题】:xml data display as NULL in database table. why?xml 数据在数据库表中显示为 NULL。为什么?
【发布时间】:2013-09-04 09:53:46
【问题描述】:

我正在使用下面的存储过程将 xml 数据保存到数据库表中,但表中的值显示为 NULL。

有什么问题请帮帮我。

 ALTER PROCEDURE [dbo].[prc_readxmldata2]
(
@XMLdata XML
)
AS
BEGIN

declare @hDoc int

exec sp_xml_preparedocument @hDoc OUTPUT,@XMLdata

insert into xmlTable (Name, Value)
select xml.Name, xml.Value
from OPENXML(@hDoc,'/UpgradeLog/Properties/Property',1)
with(Name varchar(50) 'text()',
Value varchar(50) 'text()')xml

exec sp_xml_removedocument @hDoc

下面是我的 XML 文件。

    <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
<Properties>
<Property Name="Solution" Value="ecs_myecsinc">
</Property>
<Property Name="Solution File" Value="D:\Working Projects\ECSInc\ECSInc\ECSInc\ecs_myecsinc.sln">
</Property>
<Property Name="Date" Value="Wednesday, July 27, 2011">
</Property>
<Property Name="Time" Value="20:56 PM">
</Property>
</Properties>
<Event ErrorLevel="0" Project="" Source="ecs_myecsinc.sln" Description="File successfully backed up as D:\Working Projects\ECSInc\ECSInc\ECSInc\Backup\ecs_myecsinc.sln">
</Event>
<Event ErrorLevel="0" Project="" Source="ecs_myecsinc.sln" Description="Solution converted successfully">
</Event>
<Event ErrorLevel="3" Project="" Source="ecs_myecsinc.sln" Description="Converted">
</Event>
</UpgradeLog>

【问题讨论】:

  • 没有你的xml例子很难说,如果你想获取属性,试试这个with(Name varchar(50) '@Name', Value varchar(50) '@Value')
  • Hi Roman 添加了 XML 文件。

标签: sql sql-server sql-server-2008 xml-serialization sqlxml


【解决方案1】:
select xml.Name, xml.Value
from OPENXML(@hDoc,'/UpgradeLog/Properties/Property',1)
with(
    Name varchar(50) '@Name',
    Value varchar(50) '@Value'
)

或者您可以使用 SQLXML 从@XMLData 中直接选择:

select
    T.C.value('@Name', 'nvarchar(50)') as Name,
    T.C.value('@Value', 'nvarchar(50)') as Value
from @XMLdata.nodes('/UpgradeLog/Properties/Property') as T(C)

sql fiddle demo 两种解决方案。

【讨论】:

猜你喜欢
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 2011-03-23
相关资源
最近更新 更多