在 table 中按时间和数量在 PL/SQL 中插入
Make inserts in the final table by time and by quantities in PL/SQL
你好
我正在 PL/SQL 中开发应用程序的逻辑,我 运行 遇到了一个我无法解决的问题。
我有一个阶段,将通过另一个应用程序频繁提供。我需要将这个阶段数据插入到最终的table中,但是,有一些规则:
- 规则1 ->我需要在window时间内发送所有有这个阶段的记录(最多20万条),也就是说,如果在下午2点到下午3点之间这个阶段有15万条记录,然后在 3:01PM 将在 Oracle 的最终 table 中插入数据;
- 规则2 -> 如果在这段时间window阶段增加了20万条记录,即使window时间还没结束,我们也会在最后table插入] 这 20 万条记录;
- 规则3 -> 例如,该阶段可能一次接收30万条记录。在这种情况下,规则 2 适用。 20 万条记录将被插入到最后的 table 中,其他 10 万条记录将保留到下一次 window,从下午 3 点到下午 4 点,在这个例子中。
如何在 PL/SQL 中执行此逻辑?
谢谢
好吧,我知道这会引起争论。很多。但首先,那不是逻辑 suitable 要在 PL/SQL 中实现。 PL/SQL 应该留给数据库特定的操作,而不是实现应用程序的逻辑。在极少数情况下,我会推荐在 PL/SQL 中实现任何类型的业务逻辑。跨层分布业务逻辑总是很麻烦。
如果您决定使用应用程序的原始语言(我猜不是 PL/SQL),请创建另一个问题。如果你选择 PL/SQL 那是我能想到的唯一方法:
创建一个中间件 table 在其中保存记录。这样,中间 table 将充当缓存、线程安全和事务处理,在其中轻松管理您发布的 3 个业务规则。
对于您收到的每个请求,查询中间数据table,计算table并请求,并据此采取行动。
也许对 Oracle 有更好了解的人可以想出更好的办法。这就是我能想到的,这就是我会做的。如果有人提供更好的 PL/SQL 解决方案,我将删除此答案。
你好
我正在 PL/SQL 中开发应用程序的逻辑,我 运行 遇到了一个我无法解决的问题。
我有一个阶段,将通过另一个应用程序频繁提供。我需要将这个阶段数据插入到最终的table中,但是,有一些规则:
- 规则1 ->我需要在window时间内发送所有有这个阶段的记录(最多20万条),也就是说,如果在下午2点到下午3点之间这个阶段有15万条记录,然后在 3:01PM 将在 Oracle 的最终 table 中插入数据;
- 规则2 -> 如果在这段时间window阶段增加了20万条记录,即使window时间还没结束,我们也会在最后table插入] 这 20 万条记录;
- 规则3 -> 例如,该阶段可能一次接收30万条记录。在这种情况下,规则 2 适用。 20 万条记录将被插入到最后的 table 中,其他 10 万条记录将保留到下一次 window,从下午 3 点到下午 4 点,在这个例子中。
如何在 PL/SQL 中执行此逻辑?
谢谢
好吧,我知道这会引起争论。很多。但首先,那不是逻辑 suitable 要在 PL/SQL 中实现。 PL/SQL 应该留给数据库特定的操作,而不是实现应用程序的逻辑。在极少数情况下,我会推荐在 PL/SQL 中实现任何类型的业务逻辑。跨层分布业务逻辑总是很麻烦。
如果您决定使用应用程序的原始语言(我猜不是 PL/SQL),请创建另一个问题。如果你选择 PL/SQL 那是我能想到的唯一方法:
创建一个中间件 table 在其中保存记录。这样,中间 table 将充当缓存、线程安全和事务处理,在其中轻松管理您发布的 3 个业务规则。
对于您收到的每个请求,查询中间数据table,计算table并请求,并据此采取行动。
也许对 Oracle 有更好了解的人可以想出更好的办法。这就是我能想到的,这就是我会做的。如果有人提供更好的 PL/SQL 解决方案,我将删除此答案。