我有一个包含多个表数据的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数据库中实现此目的。请帮忙。提前谢谢。
此致
卡纳安
答案 0 :(得分:1)
如this question所述,将here(XMLTABLE)中提供的技术与MERGE结合使用。此解决方案将是纯SQL并且独立于.Net。
你必须为每个表编写一个语句,你必须对所有列名进行硬编码(这是很好的IMO)。