Существует динамический оператор с несколькими переменными связывания, в которых одна и та же переменная используется во многих местах. Динамический оператор также будет меняться в зависимости от условий. Таким образом, порядок переменных связывания будет варьироваться.Связывание нескольких переменных в динамическом выражении PL/SQL с использованием «USING»
Как я могу привязать все переменные для определенных имен? Например. все :company_id
для ссылки на одно значение, все :date_from
ссылаются на одно значение и все :date_to
для ссылки на одно значение.
SELECT emp_no
FROM company_tab
WHERE company_id = :company_id
AND :template_id IS NOT NULL
AND :date_from IS NOT NULL
AND :date_to IS NOT NULL
AND emp_no in
(SELECT DISTINCT a.emp_no
FROM tab1 t, tab2 a, tab3 w
WHERE t.company_id = :company_id
AND t.template_id = :template_id
AND w.company_id = t.company_id
AND w.param_id = t.param_id
AND a.company_id = t.company_id
AND a.param_id = t.param_id
AND GREATEST(a.date_from, :date_from) >= :date_from
AND a.date_from <= :date_to
AND NVL(a.date_to, :date_to) >= :date_from
UNION
SELECT distinct a.emp_no
FROM tab1 t, tab4 a, tab5 d
WHERE t.company_id = :company_id
AND t.template_id = :template_id
AND t.company_id = a.company_id
AND t.param_id = a.param_id
AND d.company_id = a.company_id
AND a.data_deriv_day BETWEEN :date_from AND :date_to)
Я хочу, чтобы это выполнялось без использования функции REPLACE и использования инструкции USING.