0

当用户尝试删除代码/验证记录时,我想检查在删除尝试之前是否已使用该记录中的代码,以便显示比 Oracle 约束错误更有意义的消息。

例如:“无法删除此代码,因为它已在课程记录中引用。请改为停用它。”

任何人都可以就采取的方法给我一般建议吗?

我的第一个想法是创建一个与删除按钮关联的动态操作。但是,我认为可能有更好的方法。

4

2 回答 2

1

您已经说过-创建验证,它们就是为此目的而设计的。使其成为返回错误文本的函数体。编写一段代码并显示一条消息。就像是

declare
  l_var number;
begin
  select d.blabla
    into l_var
    from detail_table d
    where ...;

  if l_var is not null then
     return ('This code can not be deleted etc.');
  end if;
end;
于 2021-05-12T12:35:34.983 回答
1

如果使用应用程序错误处理程序 https://docs.oracle.com/en/database/oracle/application-express/20.2/htmdb/editing-application-attributes.html#GUID-B744BE26,我更喜欢捕获错误的概念-69B6-4084-A217-114CF05A5A4B

示例提供了有关如何将任何已知约束转换为更加用户友好的消息的详细信息。

按照您的建议创建 DA 的危险在于,在检查和显示与实际删除尝试之间可能存在时间差异,无论多么小。

于 2021-05-13T07:21:17.227 回答