У меня есть серия таблиц истории в базе данных оракула 9. History_table_00 содержит данные за прошлые месяцы, History_table_01 содержит месяц назад и History_table_02 за месяц до этого. В следующем месяце History_table_02 автоматически переименуется в history_table_03, history_table_01 переименован в history_table_02, history_table_00, переименован в history_table_01, и будет создан новый history_table_00 для сбора новейшей истории (я действительно надеюсь, что у меня есть смысл).имя динамической таблицы в операторе select
В любом случае мне нужно написать инструкцию select, которая будет динамически выбирать все таблицы истории. Я надеюсь, что это не будет слишком сложно, потому что все они имеют такое же имя, как раз добавляется порядковый номер, так что я могу обнаружить имена таблиц с:
select table_name from all_tables where table_name like 'HISTORY_TABLE_%';
Мой стандартный запрос для каждой таблицы будет:
select id, name, data_column_1, data_column_2 from history_table_%;
что я должен сделать, чтобы достичь цели написания SQL заявления, которое всегда будет выбирать из всех таблиц истории без меня необходимости идти в каждом месяце, и добавить новую таблицу? Спасибо за все, что вы, ребята, можете предоставить.
Правильное решение здесь состоит в том, чтобы иметь только одну таблицу и добавить столбец «Год» в качестве первой части первичного ключа. –
@Joel Coehoorn - может быть, это решение для бедного человека. никогда не знаешь. – haki
@haki, предшествующий год к первичному ключу, будет иметь схожие характеристики для отдельных таблиц для большинства случаев использования. –