Я застрял в каком-то плохом дизайне базы данных, где мне приходится запрашивать таблицы с именами по дате.
Следующий запрос работает, когда имена таблиц жестко закодированы с соответствующими датами.
SELECT
ajob.ORDER_ID
, ajob.JOB_NAME
, abim.SERVICE_ID
, shist.SERVICE_NAME
FROM
obscuredschema.A190129001_AJOB ajob --hardcoded YYMMDD table name
INNER JOIN obscuredschema.A190129001_ABIMSVC abim --hardcoded YYMMDD table name
ON (ajob.ORDER_ID = abim.ORDER_ID)
INNER JOIN obscuredschema.SERVICE_HIST shist
ON (abim.SERVICE_ID = shist.SERVICE_KEY)
WHERE shist.SERVICE_NAME LIKE '%BIM'
AND shist.BIM_AUTH_ID > 0
;
Отмечая два жестко закодированных имени таблицы (вместе с псевдонимами)
Как мне выполнить этот же запрос, используя динамические имена таблиц? (есть два)
код для динамической даты: TO_CHAR(trunc(sysdate - 7), 'YYMMDD')
Если бы первое имя таблицы было строкой, вот как я бы ее построил: 'A'||TO_CHAR(trunc(sysdate - 7), 'YYMMDD')||'001_AJOB'
Если бы второе имя таблицы было строкой, воткак бы я его построил: 'A'||TO_CHAR(trunc(sysdate - 7), 'YYMMDD')||'001_ABIMSVC'