Не могли бы вы помочь понять, возможно ли выполнить эту работу с использованием переменных связывания.
ШАГ №1:
SELECT sql_query INTO d_sql_query FROM RPU WHERE track_id = v_track_id AND track_id_serv = v_track_id_serv;
=> например, d_sql_query может выглядеть как ' CD_UNBIL.trans_dt> = TO_DATE ('20200702 12:11:03', 'YYYYMMDD HH24: MI: SS') 'или d_sql_query может иметь более крупное условие
Позже мы добавляем этот d_sql_query в более крупный запрос следующим образом : -
ШАГ # 2
query := 'SELECT CDDATA.msg_id, CDDATA.msg_id2, CDDATA.msg_id_serv,
CDDATA.split_row_num, CDDATA.cdr_data_partition_key,….
………
AND RPU_WORK.tracking_id = :tracking_id AND RPU_WORK.tracking_id_serv = :tracking_id_serv AND '|| NVL(d_sql_query, ' 1=1 ');
Как видите, добавлен d_sql_query, поэтому весь запрос выглядит как
...
AND RPU_WORK.tracking_id = :tracking_id AND RPU_WORK.tracking_id_serv = :tracking_id_serv AND '|| NVL(CD_UNBIL.trans_dt >= TO_DATE('20200702 12:11:03', 'YYYYMMDD HH24:MI:SS'), ' 1=1 ');
Я ищу, чтобы это сделать как (используя переменные связывания, как показано ниже).
AND RPU_WORK.tracking_id = :tracking_id AND RPU_WORK.tracking_id_serv = :tracking_id_serv AND '|| NVL(CD_UNBIL.trans_dt >= :b1, ' 1=1 ');
Я могу использовать «выполнить немедленно используя "как только я получу запрос, как указано выше.