2015-04-13 3 views
1

Мне нужно структурно сравнить две таблицы в двух разных базах данных. вторая база данных фактически является обновленной версией первой таблицы, и поэтому структура примерно такая же, но есть некоторые незначительные отличия. Есть ли способ автоматически сравнивать эти таблицы?Как найти разницу между двумя таблицами в разных базах данных

+1

Вы можете использовать таблицы ALL_TAB_COLS – Nitish

ответ

0

Один из способов: Create Database Link для доступа к таблице в другой базе данных.

Например,

CREATE DATABASE LINK "MY_DB_LINK" 
    CONNECT TO &username 
    IDENTIFIED BY &pasword 
    USING 'my_service_name'; 

создать запись TNSNAMES для my_service_name

my_service_name = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = service_name) 
    ) 
) 

И затем,

SELECT column_name 
FROM [email protected]_db_link -- here using dblink 
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'); 
Смежные вопросы