求一个对比两个数据库相同结构表的过程,如果一致则不变化,如果不一致,则生成增删改语句存到一张表C中 5C

求一个对比两个数据库相同结构表的过程,如果一致则不变化,如果不一致,则生成增删改语句存到一张表中

数据库A 中的A表,与数据库B中的A表通过比较,如果不一致,则生成一个增删改语句,放到C表中的过程怎么写,oracle刚入门的小菜鸟,求大神提供思路

2个回答

1、用拥有两个数据库权限和查询数据字典权限的账号去创建存储过程;
2、通过数据字典查看两个表的结构并进行对比(SQL可以进行判断)

--用户拥有的表
SELECT * FROM all_tables;
--用户拥有的表的列
select * from all_tab_cols;
SELECT * FROM all_tab_columns;
--表注释
select * from all_tab_comments;
--列注释
SELECT * FROM all_col_comments;

3、生成语句保存,根据你的需求生成修改语句 alter table B ...... 保存到表C。

两个数据库之间建立database links,用all_tab_columns 做联查,以其中一个数据库的all_tab_columns作为主表,查询可以根据是否存在字段,字符类型是否一致做判断,生成对应的create / alter脚本

另 :如果不需要将差异保存到表中,plsql工具自带数据库比对,可对两个数据库表结构、视图等进行比对,plsql会生成差异。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!