PLSQL之compare user objects和compare table data

上一篇 / 下一篇  2017-06-15 12:12:51 / 个人分类:PL/SQL(Oracle)

1、 compare user objects

1) 适用场景:当A数据库进行变更以后,需要对B数据库进行同样的变更或者是要对其它环境(例如测试环境)下的数据库进行同步变更,可以使用此功能,来生成可执行的SQL语句。

2) 使用说明:

Ø        点击tools-compare user objects按钮,可以打开如下窗口:

针对上述页面的说明如下:

selection tab页:选择想要进行比较的对象,如果不选择,则默认比较全部对象;

options tab页:

include storage in generated DDL for new objects:在此处可以设定,本次比较,是否要包含一些存储信息,比如表空间名称,初始化大小等,但是,这些信息,在不同的数据库中可能会不一致,因此,比对结果,有可能会不适用。

target schema:如果目标数据库中的比对对象,是由其它用户所拥有的(不是所连接的目标用户),则可以在此处设置目标数据库模式。

differences tab页:此处,会显示比对结果。

target session按钮:在此处设置要比对的目标数据库(需要升级的数据库),输入用户名和密码进行连接。

Ø        设置好selectionoptions tab页,并连接好目标数据库后,可以点击compare按钮,执行比对操作。

Ø        比对结束后,打开differences tab页,查看比对结果:

如果比对之前,选择了部分对象,则仅显示选中对象的比对结果,如果未选择对象,则默认显示全部对象的比对结果。

此处显示的SQL,需要在target session中设定的数据库中进行执行,可以直接点击apply按钮,执行SQL,也可以点击保存按钮,将结果保存,或者点击复制按钮,将结果进行复制。

2、 compare table data

1) 适用场景:A数据库下的一个或几个表进行了更新、插入或删除数据的操作,若B数据库针对相同的数据表,需要进行相同的数据操作,此时,可以使用此功能。

2) 使用说明:

Ø        点击tools-compare user objects按钮,可以打开如下窗口:

针对上述页面的说明如下:

selection tab页:选择想要进行比较的表,如果不选择,则默认比较全部对象;

options tab页:

Actions区域:在此处可以设定,本次比较,要包含哪些操作,例如:如果仅选中了插入和更新选项,则最终的比较结果中,不会包含删除操作。

commit every N records:用于控制提交的频率,如果此处填写0的话,则结束的时候仅提交一次。

mode:如果选择“generate script”,则比较结束后,可以保存比较结果,并且单独在command窗口或sql *plus中执行;如果选择“update database”,则比较结束后,会直接在目标数据库,对数据表进行数据操作(直接执行所生成的SQL语句)。

target schema:如果需要进行比较的数据表,拥有者不是target session所连接的数据库,而是其它模式的用户,可以在此处指定真正拥有者用户,并确保对用户有相应的操作权限。

target schema:如果目标数据库中的比对对象,是由其它用户所拥有的(不是所连接的目标用户),则可以在此处设置目标数据库模式。

include owner in SQL:在SQL中保存数据库用户名,此选项,只在脚本模式(generate script)下起作用,选中此选项后,可以保证,当保存的脚本在其它用户下执行时,仍然能修改指定用户的指定表数据。

differences tab页:此处,会显示比对结果。

target session按钮:在此处设置要比对的目标数据库(需要升级的数据库),输入用户名和密码进行连接。

Ø        设置好selectionoptions tab页,并连接好目标数据库后,可以点击compare按钮,执行比对操作。

Ø        比对结束后,打开differences tab页,查看比对结果:

如果选择的是“update database”,则此处仅显示每个表插入、更新、删除的记录条数;

如果选择的是“generate script”,则此处会显示具体的SQL操作语句,可以对这个结果进行保存或复制操作。

3、 使用技巧

1) compare user objects:比较的是数据结构,最终比对结果,不包含数据记录的变化;

2) compare table data:比较的是数据表的数据记录变化情况,比较的前提,数据表在两个数据库中同时存在。

3) 若要实现如下功能:将B数据库中的某些表,导入到A数据库,包括表结构和表的数据记录,除了使用导入导出功能外,还可以将上述两个功能结合使用:

首先,使用compare user objects工具,在A数据库中建立需要的数据表;

然后,使用compare table data工具,将数据表记录,更新到A数据库即可。



相关阅读:

TAG: compare objects

 

评分:0

我来说两句

Open Toolbar