最佳实践在oracle数据库中插入x位置的1个订单[关闭]

问题描述 投票:0回答:1

我正在处理一个EDI应用程序,该应用程序从第三方系统接收订单并将其写入我们自己的ERP中。现在,我正在努力寻找一种很好的方法来处理最终将订单数据写入我们的oracle数据库的过程。

因此,一个订单基本上包含1个标头和x个位置,我发现在我的c#服务中收集,转换和准备数据后,将订单写入数据库的最便捷方法是使用存储过程,因为过程涉及以下几个步骤:生成序列号,锁定表,获取新插入顺序的唯一键等。另外,如果在此过程中出现任何问题,我可以回滚整个操作,这将非常方便。

现在我的问题:

由于订单可以包含x个头寸,因此在存储过程中处理该头寸的最佳方法是什么?我是否应该在oracle数据库中为订单位置创建一个新类型,以便可以将上述类型的数组从服务传递到存储过程?

有更好的方法吗?

c# oracle plsql
1个回答
0
投票

我不知道C#。但是,看看这是否有意义。

如果您可以在Oracle中创建全局临时表并最初加载数据,它可能会为您提供更多的灵活性,因为

  • 它是一个表,因此您可以使用SQL或PL / SQL(您提到的存储过程)通过几个步骤(如果需要)更新其列。
  • 更多用户可以同时使用它,但他们看不到彼此的数据
  • 临时,本质上是该会话(或事务;您可以在这两者之间进行选择)中最后一次存储的数据,但不是永久性的
© www.soinside.com 2019 - 2024. All rights reserved.