Проверка уникальных ограничений APEX - PullRequest
0 голосов
/ 25 мая 2018

Я создал проверку для текстового поля в моем приложении.Текстовое поле «Местоположение».Он имеет уникальное ограничение и при вводе существующего местоположения выдает сообщение об ошибке ORA.Вместо этого я хочу отобразить сообщение об ошибке в поле.Я сделал следующее.

  1. Создание проверки
  2. Тип: Элемент = Значение
  3. Элемент =: P3_LOCATION, Значение = # LOCATION #
  4. Ошибкасообщение: местоположение уже существуетИнлайн с полем.Связанный элемент: P3_LOCATION
  5. Состояние на стороне сервера
  6. Когда нажата кнопка: CREATE, Type = Item не равен NULL, Item = P3_LOCATION.

Это точночто я хочу, но когда я пытаюсь создать новое местоположение, это также дает мне это сообщение об ошибке.Что я могу сделать, чтобы это влияло только на те места, которые уже существуют?

1 Ответ

0 голосов
/ 26 мая 2018

Что ж, вы на самом деле никогда не контролируете, существует ли уже введенная вами позиция в таблице.

Я бы предложил следующее:

  • создать проверку для элемента
  • его типом является «Функция 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
  • Когда нажата кнопка: CREATE
...