批量插入/从XML更新到Oracle数据库

时间:2014-07-09 13:11:25

标签: .net xml oracle bulkinsert bulk-load

我有一个包含多个表数据的XML。现在我想插入/更新到数据库中。 如果主键已存在于数据库中,则必须从XML更新记录,否则插入新记录。 注意:我有数百万条记录。所以请建议我这样做的最佳方法。

我的xml看起来像:

<Table1>
    <Key>1</Key>
    <Value>Data</value>
</Table1>
<Table2>
    <Key>1</Key>
    <Value>Data</Value>
</Table2>
<Table2>
    <Key>2</Key>
    <Value>Updated data</Value>
<Table2>

现有数据库:

Table1                              Table2
---------------------               -------------------------
Key      Value                      Key            Value
 1        Data                       1              Data
                                     2              Data

预期结果:导入XML

之后
Table1                              Table2
---------------------               -------------------------
Key      Value                      Key            Value
 1        Data                       1              Data
                                     2              Updated data

注意:在表2中,键的值为&#34; 2&#34;成为&#34;更新数据&#34;,其余记录相同。我有数以百万计的这样的记录。

如何使用.NET在Oracle数据库中实现此目的。请帮忙。提前谢谢。

此致

卡纳安

1 个答案:

答案 0 :(得分:1)

this question所述,将here(XMLTABLE)中提供的技术与MERGE结合使用。此解决方案将是纯SQL并且独立于.Net。

你必须为每个表编写一个语句,你必须对所有列名进行硬编码(这是很好的IMO)。