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

在 APEX 20.1 中删除之前检查参照完整性

如何解决在 APEX 20.1 中删除之前检查参照完整性

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

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

谁能给我关于采取的方法一般建议?

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

解决方法

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

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;
,

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

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

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

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