Как отобразить все столбцы (и их тип) во всех таблицах всех схем в базе данных?

Предположим, у вас есть база данных, в которой есть 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;

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

Другие вопросы по тегам