Использовать union all
:
with Test_tbl as (
select *
from Test_Persons_A
where upper(:TEST_TBL) = 'TEST_PERSONS_A'
union all
select *
from Test_Persons_B
where UPPER(:TEST_TBL) = 'TEST_PERSONS_B'
)
Предполагается, что таблицы имеют одинаковые столбцы в одном порядке.
Если они не имеют одинаковых столбцов, определенные столбцы, которые вы хотите использовать для оставшегося кода, возможно, присваивая NULL
столбцам, которые могут отсутствовать в одной из таблиц.
TaskListener "onCreate" вызывается во время транзакции, в которой создается задача. поэтому из этой транзакции вы не можете получить доступ к состоянию, измененному из той же транзакции (например, подписка на сообщения).
Но мне интересно: почему у вас есть граничное событие в пользовательской задаче? Зачем вам нужен доступ к его подписке?
Четыре описанных вами варианта использования (onCreate / onAssign / onComplete / onCancel) могут быть реализованы путем присоединения TaskListeners к userTask, нет необходимости в пограничных событиях.