Как отобразить все столбцы (и их тип) во всех таблицах всех схем в базе данных?
Предположим, у вас есть база данных, в которой есть n схем, а в каждой таблице n таблиц. Каждый из них содержит n столбцов. Как бы мне распечатать все эти данные вместе с типом данных, используемым в столбцах. Мне нужно составить сводный список для справочных целей, и я действительно не хочу описывать каждую таблицу в отдельности. Что я уже использовал:
SELECT DISTINCT OWNER, OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = '*Schema_Name*';
а потом
SELECT utc.TABLE_NAME ,
utc.COLUMN_NAME ,
utc.DATA_TYPE
FROM USER_TAB_COLUMNS utc
WHERE utc.TABLE_NAME ='*Table Name*';
Однако это уменьшает усилия, но все же делает вещи утомительными, учитывая объем данных, с которыми мне приходится иметь дело.
2 ответа
Рассмотрите возможность создания модели данных. Вы пометили SQL Developer, поэтому я думаю, что это доступно для решения.
Вы говорите "ВСЕ СХЕМЫ", но я предполагаю, что вы имеете в виду все схемы ваших приложений, а не пользователей или внутренние схемы оракула.
Когда у вас есть модель, у вас есть выбор диаграмм, HTML, PDF и Excel для отображения.
Вам просто нужно перепроектировать схемы для модели, а затем опубликовать.
Как восстановить существующую схему или схемы
Для тонны объектов - тысяч, вы захотите увеличить объем памяти для вашего jvm до 3 ГБ или около того для оптимальной работы.
Для этого вам требуется доступ DBA или, по крайней мере, выбор доступа к запрашиваемым схемам и таблицам.
select owner,table_name,column_name,data_type from dba_tab_cols order by owner;
это запрос, который предоставит вам все схемы вместе со всеми таблицами, их столбцами и типами данных. Если вы хотите настроить запрос так, чтобы он подходил для любой схемы или таблицы данных.