唯一约束验证APEX

时间:2018-05-25 17:48:23

标签: sql oracle oracle-apex oracle-apex-5.1

我已在应用程序中为文本字段创建了验证。 文本字段是"位置。"它具有唯一约束,当您输入现有位置时,它将为您提供ORA错误消息。而不是这个,我想显示一个字段内联错误消息。 我做了以下。

  1. 创建验证
  2. 类型:项目=值
  3. Item =:P3_LOCATION,Value = #LOCATION#
  4. 错误消息:位置已存在。内联字段。相关项目为:P3_LOCATION
  5. 服务器端条件
  6. 按下按钮时:CREATE,Type = Item is NOT NULL,Item = P3_LOCATION。
  7. 这正是我想要的,但是当我尝试创建一个新位置时,它也会给我这个错误消息。我能做些什么只影响已经存在的位置?

1 个答案:

答案 0 :(得分:1)

好吧,你从来没有真正控制你现在输入的位置是否已经存在于表格中。

我建议如下:

  • 在项目
  • 上创建验证
  • 其类型为" PL / SQL函数(返回错误文本)"
  • 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
  • 按下按钮时:创建