Вот очень простой пример использования таблицы DEPT: демонстрационная страница .
Когда вы выбираете DEPTNO из списка, соответствующее значение DNAME отображается в текстовом поле. Это делается с помощью «продвинутого» динамического действия, определенного так:
«Истинное действие» определяется следующим образом:
Это работает, выполняя AJAX туда-обратно, чтобы выполнить оператор выбора. Обратите внимание, что нам нужно указать Apex, чтобы оно отправляло текущее значение поля P25_DEPTNO, чтобы оно получало верные данные.
UPDATE
Конечно, когда это возможно, лучше избегать использования AJAX, поскольку каждое действие включает в себя передачу данных в оба конца на сервер. В этом случае этого можно избежать, поместив все необходимые данные в возвращаемое значение списка выбора, а затем проанализировав его на клиенте. Для этого вы можете определить список выбора LOV следующим образом:
select deptno d, deptno||':'||dname r
from dept
order by 1
Затем используйте динамическое действие, которое использует выражения Javascript для анализа возвращаемого значения и заполнения других элементов:
Конечно, список выбора больше не возвращает (просто) значение DEPTNO, поэтому мне также нужно разобрать его в отдельном поле, если мне нужно это значение (что я, вероятно, и делаю). Это требует второго Истинного Действия в определении динамического действия.
В результате (см. new demo ) не используется AJAX, поэтому он более эффективен, но несколько сложнее в коде - вам нужно немного знать Javascript. Также вам может понадобиться обработать случай, когда одно из значений данных включает выбранный вами разделитель (двоеточие в моем примере).
Какой путь зависит от ваших конкретных обстоятельств: если связанные данные стоят дорого (например, использует вызов сложной функции), может быть лучше использовать метод AJAX и получать данные только в том случае, если это действительно необходимо; но если это недорого, то сэкономить на поездках туда и обратно может стоить.