Could you pls help to understand if it is possible to make this work using bind variables.
STEP#1 :
SELECT sql_query INTO d_sql_query FROM RPU WHERE track_id = v_track_id AND track_id_serv = v_track_id_serv;
=> for eg, d_sql_query can be like ‘CD_UNBIL.trans_dt >= TO_DATE('20200702 12:11:03', 'YYYYMMDD HH24:MI:SS')’ or d_sql_query can have a bigger condition
Later we add this d_sql_query to a bigger query as follows: -
STEP#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 ');
As you can see that d_sql_query is appended, so the whole query looks like
...
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 ');
I am looking to make it like (using bind variables as below).
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 ');
I can use "execute immediate <step#2> using " once i have the query as above.