В дополнение к некоторым другим предоставленным ответам, если вы хотите посмотреть на различия в структуре таблицы с таблицей, которая может иметь похожую, но отличающуюся структуру, вы можете сделать это несколькими способами:
Первый - Если вы используете Oracle SQL Developer, вы можете запустить описание обеих таблиц, чтобы сравнить их:
descr TABLE_NAME1
descr TABLE_NAME2
Второе - Первое решение не может быть идеальным для больших таблиц с большим количеством столбцов. Если вы хотите видеть только различия в данных между двумя таблицами, то, как уже упоминалось несколькими другими, следует использовать оператор SQL Minus.
Третий - Если вы используете Oracle SQL Developer и хотите сравнить структуру таблиц двух таблиц, используя разные схемы, вы можете сделать следующее:
- Выберите "Инструменты"
- Выберите «Различия в базе данных»
- Выберите «Подключение к источнику»
- Выберите «Соединение-получатель»
- Выберите «Стандартные типы объектов», которые вы хотите сравнить
- Введите «Имя таблицы»
- Нажимайте «Далее», пока не достигнете «Готово»
- Нажмите «Готово»
- ПРИМЕЧАНИЕ. В шагах 3 и 4 вы должны выбрать различные схемы, в которых существуют объекты, которые вы хотите сравнить.
Четвертый - Если таблицы двух таблиц, которые вы хотите сравнить, имеют больше столбцов, находятся в одной и той же схеме, нет необходимости сравнивать более двух таблиц и непривлекательны для визуального сравнения с помощью команды DESCR, которую вы можно использовать следующее для сравнения различий в структуре таблицы:
select
a.column_name || ' | ' b.column_name,
a.data_type || ' | ' b.data_type,
a.data_length || ' | ' b.data_length,
a.data_scale || ' | ' b.data_scale,
a.data_precision || ' | ' b.data_precision
from
user_tab_columns a,
user_tab_columns b
where
a.table_name = 'TABLE_NAME1'
and b.table_name = 'TABLE_NAME2'
and (
a.data_type <> b.data_type or
a.data_length <> b.data_length or
a.data_scale <> b.data_scale or
a.data_precision <> b.data_precision
)
and a.column_name = b.column_name;