将大型 XML 加载到 SQL Server 2008

发布于 2024-12-24 01:16:09 字数 1261 浏览 0 评论 0 原文

我必须将 xml 加载到 sql server 表中。 xml 大小约为 17 Mb。 我正在尝试使用以下代码:

DECLARE @tempTable TABLE (
codesthot NVARCHAR(50),
codpobhot NVARCHAR(50),
hot_codigo NVARCHAR(50),
hot_codcobol NVARCHAR(50),
hot_coddup NVARCHAR(50),
hot_afiliacion NVARCHAR(50)
)

DECLARE @xml XML
SET @xml='<hotel>
                <codesthot><![CDATA[ABALK]]></codesthot>
                <codpobhot><![CDATA[34815]]></codpobhot>
                <hot_codigo><![CDATA[265369]]></hot_codigo>
                <hot_codcobol><![CDATA[724224]]></hot_codcobol>
                <hot_coddup><![CDATA[724224]]></hot_coddup>
                <hot_afiliacion><![CDATA[RS]]></hot_afiliacion>
            </hotel>
...   

INSERT INTO @tempTable
SELECT Tbl.Col.value('codesthot[1]', 'NVARCHAR(50)'),
Tbl.Col.value('codpobhot[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_codigo[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_codcobol[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_coddup[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_afiliacion[1]', 'NVARCHAR(50)')
FROM   @xml.nodes('//hotel') Tbl(Col)

SELECT * FROM @tempTable

它运行了 5 个小时,但我不知道需要多长时间。 我还可以尝试什么其他方法?

谢谢!

I have to load a xml into a sql server table. The xml size is about 17 Mb.
I am trying with the following code:

DECLARE @tempTable TABLE (
codesthot NVARCHAR(50),
codpobhot NVARCHAR(50),
hot_codigo NVARCHAR(50),
hot_codcobol NVARCHAR(50),
hot_coddup NVARCHAR(50),
hot_afiliacion NVARCHAR(50)
)

DECLARE @xml XML
SET @xml='<hotel>
                <codesthot><![CDATA[ABALK]]></codesthot>
                <codpobhot><![CDATA[34815]]></codpobhot>
                <hot_codigo><![CDATA[265369]]></hot_codigo>
                <hot_codcobol><![CDATA[724224]]></hot_codcobol>
                <hot_coddup><![CDATA[724224]]></hot_coddup>
                <hot_afiliacion><![CDATA[RS]]></hot_afiliacion>
            </hotel>
...   

INSERT INTO @tempTable
SELECT Tbl.Col.value('codesthot[1]', 'NVARCHAR(50)'),
Tbl.Col.value('codpobhot[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_codigo[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_codcobol[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_coddup[1]', 'NVARCHAR(50)'),
Tbl.Col.value('hot_afiliacion[1]', 'NVARCHAR(50)')
FROM   @xml.nodes('//hotel') Tbl(Col)

SELECT * FROM @tempTable

It is running for 5 hours and I don´t know how long could it take.
What other way can I try?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文