Как получить доступ к таблице ABC_XXX постоянно в Teradata, где XXX периодически меняется? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть таблица в Teradata ABC_XXX, где XXX будет меняться ежемесячно.Например: ABC_1902, ABC_1812, ABC_1904 и т. Д. *

Мне нужно получить доступ к этой таблице в моем приложении без изменения кода каждый месяц.

Это любой способ сделать в Teradata или любой другойАльтернативное решение .??

Пожалуйста, помогите

1 Ответ

0 голосов
/ 12 февраля 2019

Можете ли вы попробовать использовать DBC.TABLES в подзапросе, как показано ниже:

  with tbl as  (select  'select * from ' ||  databasename||'.'||tablename as tb from 
  dbc.tables where tablename like 'ABC_%')
  select * from tbl;

Если вы сможете получить окончательный запрос, выполненный в вашем приложении, вы сможете запросить нужную таблицу без редактирования запроса.

Приведенное выше решение предполагает, что таблица предыдущего месяца удаляется при создании таблицы нового месяца.

Однако, если предыдущая таблица не удаляется, вы можете попробовать следующий подход:

select 'select * from db.ABC_' ||to_char(current_date,'YYMM')

Вывод будет

select * from db.ABC_1902

выполнить вывод в вашем приложении, вы сможете запросить динамическую таблицу.

...