Oracle存储过程 - 跟踪验证错误



我正在将MSSQL存储过程转换为Oracle的过程,但是我遇到了一个问题,这使我质疑这两个实现。

SQL Server版本在存储过程中创建一个临时表,以跟踪可能是一个有点大的数据集(成千上万的记录(的验证错误。每个验证查询将无效的ID选择在临时表中使用适当的错误消息(特定于查询(。完成所有验证后,将错误插入真实表中(该表没有存储IDS的列(。然后,我可以通过从临时错误表过滤出ID来轻松插入有效行。

我希望这是有道理的。只是要重申,我不简单地使用"真实"错误表的原因是,它不包含我存储无效行的ID的列(我无法更改此(。

我知道我可以在Oracle中使用普通/全局临时表,但是我阅读越多,听起来就越糟糕的做法。在Oracle中做到这一点的好选择是什么?收藏?

谢谢。

当错误发生而不是将错误插入真实的目标表中,而不是将错误插入#TEMP表中,然后再移动呢?您没有列出您的Oracle版本,但可以在系统上创建一个全局临时表,然后在存储过程中,将在插入上创建会话临时表的私有表。但是,通常在Oracle中不需要临时表。整个过程设计听起来令人怀疑。在Oracle中,有可能插入数据捕获大量操作的单个行错误的数据。如果您或您团队中的一些成员有一个体面的了解Oracle的工作原理,那么此过程似乎是重构的候选人(重新设计(。

最新更新