Доступ к значениям "Элементы страницы для отправки" внутри триггера в oracle apex

Я хочу получить доступ к дополнительному значению элемента страницы из триггера, которого нет в связанной таблице данных. Для примера у меня есть таблица, как показано ниже,

      Employee
----------------------

empId | fName | lName 
----------------------
1     | John  | Doe
----------------------
2     | Jane  | Doe 

Элементы формы Apex будут похожи,

P500_EMPID, P500_FNAME, P500_LNAME

У меня есть дополнительный элемент страницы под названием P500_SOMEIDSкоторый представляет собой список с множественным выбором. Я хочу получить доступ к этим выбранным значениям внутриAfter Insert спусковой крючок EmployeeТаблица. Я попытался добавить этот элемент в "Элементы страницы для отправки". Но я не знаю, как получить к нему доступ внутри этого триггера. Является ли это возможным..? и как..?

2 ответа

Решение

В процессе страницы, который обрабатывает обновление вашей таблицы (это будет процесс типа "Форма - Автоматическая обработка строк (DML)", в разделе "Настройки" есть атрибут "Вернуть первичный ключ (и) после вставки". Если это установлено значение "Вкл.", то оператор вставки вернет значение вставленной строки в элемент страницы, который определен как ваш первичный ключ. Пример:

  • Создать форму на emp
  • Сделайте P1_EMPNO элементом страницы первичного ключа
  • Предположим, вы создаете новую строку, и ее значение empno равно 1000. Затем после запуска процесса автоматической обработки строк значение P1_EMPNO устанавливается на 1000.

Если вы хотите вставить строки в другую таблицу, ссылающуюся на вновь созданный empno, вы можете создать процесс страницы (который выполняется после обработки строки) типа pl/sql code следующим образом:

BEGIN
  INSERT INTO some_other_table (empno) VALUES (:P1_EMPNO); 
END;

По возможности следует избегать использования триггеров для бизнес-функций.

Вместо триггера базы данных используйте хранимую процедуру, которая будет выполнять ту же работу. Передайте любое количество параметров, которые хотите (включаяP500_SOMEIDS пункт).

Другие вопросы по тегам