У меня есть две версии базы данных V5 и V9.
V9 является последней версией.
Я должен найти столбцы с похожим именем таблицы, которые присутствуют в таблице V9, а не в V5.
Например, имя таблицы: ashish_table в V9 имеет 5 столбцов A, B, C, D и E.
та же таблица ashish_table в V5 имеет 3 столбца A, B и C.
Таким образом, в таблице ashish_table таблицы V9 есть две колонки D и E, а в таблице ashish_table таблицы V5 нет.
Я установил связи между этими двумя базами данных. Я также искал и нашел ниже скрипт, который сравнивает таблицы на основе «data_type, data_length, data_scale, data_precision», но он сопоставляет только столбцы с одинаковыми именами.
например. он будет соответствовать столбцам A, B и C на основе data_type, data_length, data_scale, data_precision; если предположить, что тип данных столбца A был изменен с char на varchar и остальные два столбца совпадают, то он вернет только столбец A.
Он не дает D и E, которых нет в ashish_table V5.
set verify off
set heading off
column data_type format a20
accept table1 prompt 'Table 1: '
accept table2 prompt 'Table 2: '
prompt
prompt The table &table1 and &table2 have columns with the same name but differ:
prompt -------------------------------------------------------------------------
select
column_name,data_type, data_length, data_scale, data_precision
from
user_tab_columns
where
table_name = upper('&table1')
minus
select
column_name,data_type, data_length, data_scale, data_precision
from
user_tab_columns
where
table_name = upper('&table2');
Спасибо, что прочитали большой вопрос.
Есть ли скрипт, который сравнивает две таблицы и дает пропущенные столбцы.