唯一约束验证 APEX

Unique constraint validation APEX

我已经为我的应用程序中的文本字段创建了验证。 文本字段是 "Location." 它有一个唯一的约束,当你输入一个现有的位置时,它会给你一个 ORA- 错误信息。而不是这个,我想显示一个字段内联错误消息。 我做了以下。

  1. 创建验证
  2. 类型:项目=价值
  3. 项目=:P3_LOCATION,价值=#LOCATION#
  4. 错误信息:位置已经存在。与字段内联。相关项目是:P3_LOCATION
  5. 服务器端条件
  6. 按下按钮时:创建,类型 = 项目不为空,项目 = P3_LOCATION。

这正是我想要的,但是当我尝试创建一个新位置时,它也给我这个错误消息。我该怎么做才能让它只影响已经存在的位置?

好吧,您永远无法真正控制您现在输入的位置是否已经存在于 table 中。

我建议如下:

  • 对项目创建验证
  • 它的类型是"PL/SQL Function (returning Error Text)"
  • PL/SQL函数体:

    declare
      l_loc your_table.location%type;
    begin
      select location
        into l_loc
        from your_table
        where location = :P3_LOCATION;
    
      return ('Location already exists');
    exception
      when no_data_found then null;
    end;
    
  • 显示位置:内联字段

  • 相关项目:P3_LOCATION
  • 按下按钮时:创建