【问题标题】:C#, insert multiple records at once to a databaseC#,一次向数据库中插入多条记录
【发布时间】:2009-08-13 12:34:28
【问题描述】:

我正在为我的数据库编写一个转换器,从 MSSQL Express Edition 到 Oracle。 表中的行数约为 500 万。 在 MSSQL 方面,我使用 LINQ to SQL 来选择数据。 我会对 Oracle 使用相同的方法,但不幸的是,.NET 中没有 LINQ to Oracle。 我知道有开源的LINQ to Oracle 实现,但我想我会使用简单的 System.Data.OracleClient 命名空间。 我的问题是如何一次将行插入 Oracle 数据库?恐怕如果我每行调用 ExecuteQuery() 将花费大量时间。 那么我的问题有什么优雅的解决方案吗? 谢谢。

【问题讨论】:

    标签: c# sql performance oracle


    【解决方案1】:

    最简单的方法是放弃该程序并使用SQL Server Integration Services。您可以直接从 MSSql 服务器链接到 Oracle 数据库并将数据推送过来。

    【讨论】:

    • 第二个,如果需要在多个数据库上运行,您甚至可以存储包以再次运行它
    • 不错的方法,但不幸的是我有 SQL Server Express 版本
    • 为了进行数据传输,您可以使用完整 Sql Server 的 eval 或售价 50 美元的开发版本。许可问题可能会使事情变得粗略,但这是需要考虑的事情。您还可以查看可能为您生成插入脚本的其他 3rd 方应用程序,例如 Red Gate 工具。您的目标是 Oracle(Red Gate 不支持),但您最终应该得到一个易于修改的插入脚本,用于在 oracle db 上执行 vanilla。
    【解决方案2】:

    您可以编写一个 Oracle SP 并从您的应用程序中调用它。您需要单独的转换器应用程序是否有任何特定原因/目的?您可以创建从 Oracle 到 SQL Server 的 dblink 并使用 ODBC 连接,然后填充数据,至于时间/日期格式不匹配,您始终可以使用 to_char() 函数对其进行格式化

    【讨论】:

      猜你喜欢
      • 2020-10-06
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      相关资源
      最近更新 更多