【发布时间】:2009-11-29 05:41:45
【问题描述】:
我编写了一个将表数据导出到 XML 文件的 CLR 程序集。现在我想将此数据导入另一个实例的临时表中。 XML文件结构如下:
<row>
<SystemInformationID>1</SystemInformationID>
<Database_x0020_Version>10.00.80404.00</Database_x0020_Version>
<VersionDate>2008-04-04T00:00:00</VersionDate>
<ModifiedDate>2008-04-04T00:00:00</ModifiedDate>
</row>
我希望在目标位置解析 XML 并将其导入临时表。我在那里也有主表,所以我可以从那里得到表结构。 有办法吗?我使用 OPENXML,但它似乎无法正常工作。我可以将 XML 文件读入一个表中,该表将存储在 XML 数据类型的列中。我的问题是解析该列中的数据。 这是临时尝试:
CREATE TABLE ##T (IntCol int, XmlCol xml)
GO
INSERT INTO ##T(XmlCol)
SELECT * FROM OPENROWSET(
BULK 'c:\HISOutput.xml',
SINGLE_CLOB) AS x
--works correctly up to this point
DECLARE @x xml
DECLARE @id int
SELECT @x=XmlCol FROM ##T
EXEC sp_xml_preparedocument @id OUTPUT, @x
SELECT *
FROM OPENXML (@id,'/row',2)
WITH
dbo.awbuildversion
--I used dbo.awbuildversion table from AdventureWorks DB for testing
this doesn't show the first column no matter how I change the OPENXML instruction.
提前发送
【问题讨论】:
-
如果你不缩进你的 xml 至少 4 个空格,那么 SO 软件会吃掉 <和>人物。我帮你修好了。
-
tx Jim,不知道
-
或者只是简单地突出显示您的代码行,然后按编辑器工具栏上的“代码”按钮 (101 010) 以获取正确的“代码格式”
标签: sql sql-server xml