我需要从结构上比较两个不同数据库中的两个表。第二个数据库实际上是第一个表的更新版本,因此结构大致相同,但存在一些细微差别。有没有办法自动比较这些表?
答案 0 :(得分:0)
一种方法是Create Database Link访问另一个数据库中的表。
例如,
CREATE DATABASE LINK "MY_DB_LINK"
CONNECT TO &username
IDENTIFIED BY &pasword
USING 'my_service_name';
为my_service_name创建tnsnames条目
my_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = service_name)
)
)
然后,
SELECT column_name
FROM user_tab_columns@my_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');