Доступ к значениям "Элементы страницы для отправки" внутри триггера в 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
пункт).