Есть ли способ запросить несколько таблиц одновременно на основе общего имени таблицы в Oracle до SQL или PL / SQL - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть требование извлекать данные из всех таблиц на основе общего шаблона имен таблиц каждую неделю. В основном, мое требование состоит в том, чтобы объединить все данные в одну таблицу поиска.

Пример:

Имена таблиц:

Department_20190101
Department_20190109
Department_20190122
Department_20190129

Мне нужно извлечь данные из всех таблиц и создать одну таблицу поиска. Есть ли простой способ сделать это, кроме как пройти через итерацию в PL / SQL, получив имена таблиц с помощью ALL_TABLES

Примечание: часть Date не согласована. Если я могу этого достичь После этого я могу легко начать вставлять данные из новой таблицы в существующий поиск (n + 1)

Пожалуйста, поделитесь своими предложениями.

С уважением, Скотт

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Если у вас очень длинный список таблиц или вам необходимо объединить результаты всех таблиц, например, начиная с Department_, за которым следует определенная дата или диапазон дат, вам может потребоваться динамическая c SQL за это. Для точного примера, который вы показали в своем вопросе, CTE с запросом объединения может работать:

WITH cte AS (
    SELECT * FROM Department_20190101 UNION ALL
    SELECT * FROM Department_20190109 UNION ALL
    SELECT * FROM Department_20190122 UNION ALL
    SELECT * FROM Department_20190129
)

И затем использовать CTE как:

SELECT *
FROM cte;

Это предполагает, что все таблицы имеют идентичные структуры. Кроме того, в качестве дополнительного примечания, если это так, вы можете рассмотреть возможность использования единственной таблицы со столбцом даты, чтобы отличать общие данные.

0 голосов
/ 19 февраля 2020

Проверьте здесь: Выполните для каждой таблицы в PL SQL есть хороший пример для решения вашей проблемы с помощью pl / sql (pl / sql help Вы динамично растете sql - запрос).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...