Oracle支持批量操作方案

Oracle支持批量操作方案

方案管理

变更记录

日期(Date)作者(Author)旧版本(Old Version)新版本(New Version)备注(Remarks)

审阅记录

日期(Date)姓名(Name)职务(Position)版本(Version)签字(Signature)

一、方案简介

  • 方案背景
    • 目前项目版本为.NET5 ,没有适配的对应Oracle环境的批量插入的扩展,为了实现在项目中对oracle环境的批量操作的功能

二、方案目标

  • 具体目标
    • 实现在.NET5项目环境下对Oracle数据库进行批量插入修改删除操作
  • 意义
    • 提高项目在大数据进行功能操作时的性能

三、准备工作

四、计划安排

  • 人天安排
    • Oracle批量操作方案
    • **EFCore.BulkExtensions**开源库.Net6版本适配Oracle的操作
    • .NET6完成批量实现迁移到.NET5版本**EFCore.BulkExtensions**开源库及.NET5环境的适配
      • Oracle、Mysql、PostgreSql
    • 发布批量操作的私有包
    • .NET5版本批量操作发出Nuget包,项目中使用发布的私有包进行测试
      • Oracle、Mysql、PostgreSql

五、方案实施

  • 具体细节
    • 分析**EFCore.BulkExtensions**开源库.Net6版本的SqlServer批量实现方式
    • 通过.NET6版本SqlServer的实现完成对Oracle的批量实现方式
    • 对在.NET6完成ORACLE 进行批量增删改实现
    • .NET6批量实现迁移到.NET5版本**EFCore.BulkExtensions**开源库的分支,做.NET5环境的适配
      • Oracle、Mysql、PostgreSql 数据库的支持
    • 对迁移到.NET5版本的Oracle批量操作私有Nuget包。名称**GCT.EFCore.BulkExtensions**
    • 在项目中使用发布的包进行测试

六、风险评估

  • 可能会出现的难点
    • oracle的OracleBulkCopy使用方法
    • ORACLE的SQL语句不熟悉
    • .NET6环境迁移到.NET5环境会存在方法等多种不适配的问题
      • Oracle
      • Postgresql
      • Mysql
  • 风险评估

七、注意事项

  • .Net6**EFCore.BulkExtensions**开源库拥有PostgreSql和MySql的适配,需要迁移做.NET5的适配

八、验收标准

  • 验收对象
    • medpro产品组
  • 验收前提条件
    • 已发布私有包完成
  • 验收方法
    • 检验medpro产品使用到批量操作的事务操作
  • 验收标准
    • 事务操作成功

九、补充方案(备用方案)

  • 项目后续如果需要适配其他国内的数据库,基于**EFCore.BulkExtensions** 包耦合性深,进行扩展其他数据库会出现一些其他异常,是否考虑搭建公司内部私有数据库批量操作库?
  • 通过现有开发完成的.NET5的oracle提交PR给官方开源库,后续使用开源包