微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何捕获错误信息以及如何将错误记录的数据连接到一个表中

如何解决如何捕获错误信息以及如何将错误记录的数据连接到一个表中

我有一个代码作为项目的一部分。该代码验证以下条件。

  • 检查项目编号是否为空
  • 检查项目编号的长度是否等于 5 个字符
  • 检查商品描述是否为空
  • 检查商品描述的长度是否少于 240 个字符。

代码将验证表中每条记录的所有上述条件。如果任何记录的上述任何验证失败,则该特定记录的状态将更改为“V”并打印错误消息,其中错误消息将显示上述验证失败的条件。

例如:对于特定记录,如果项目编号为空,则特定记录的状态将更新为“V”,错误消息将打印为“项目编号为空,因此状态更新为 V” '.

现在我可以处理以下场景

  1. 使用 sequence_no、error_message 和 error_data 创建一个表 error_log。
  2. 错误消息将包含实际的错误消息,错误数据将包含所有数据的串联值。
  3. 当出现错误时,错误消息应在error_message列的error_log表中捕获,error_data应具有所有列的串联值,即error_data 应该将验证失败的记录列的数据串联起来。

你能帮我如何捕获error_log表中的错误信息以及如何连接error_message表的error_data列中的错误记录列数据

解决方法

您描述的场景最好通过适当的表设计和使用约束来处理,这将始终强制执行这些条件。定义列长度以满足您的要求(5 个字符、240 个字符)或使用 NOT NULL 约束,您将永远需要这样的过程。如果这是不可能的,那么考虑一个简单的 INSERT as SELECT 命令可以完成你所描述的:

insert into error_table 
       (error_date,error_pk,error_message) 
       select sysdate,[data_table.primary_key],'field A is too long' 
         from data_table where length(field_a) > 5;

对于要检查的每个条件,您都需要一个插入语句。此外,我只会存储每个数据行的主键,而不是所有数据的副本,除非您需要跟踪数据随时间的所有更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。