PL/SQL DEVELOPER 6 对象比较功能说明(原创)
PL/SQL DEVELOPER 6 的对象比较功能非常强大与实用,对于开发人员来说是一个必备的工具,主要有以下用途:
** 检查两个不同数据库间某个用户下所有对象的不同信息
**
** 自动生成用来匹配的 SQL 脚本
**
常用于开发数据库与生成数据库对比或者新版数据库与旧数据库
下面我将全面介绍 PL/SQL DEVELOPER 6 对象比较功能的操作步骤:
** 1 ** ** 、打开窗口
**
打开 Tools/Compare User Objects… 菜单,比较窗口显示如下:
中间主区域显示的是当前登录用户下的所有对象,包括表、视图、包、函数、过程、触发器、序列等等,这些都是可以比较的对象。
** 2 ** ** 、从列表中选择你要比较的对象,如上图所示,可以通过 ctrl 或者 shift 键多选。
**
** 3 ** ** 、设置目标数据库对象
**
点击下方的 Target Session.. 按钮,将弹出连接对话框如下图所示
输入目标数据库的用户名、密码、服务名,注意用户名必需是含用要比较对象的用户
** 4 ** ** 、开始比较
**
输入完目标对象的连接后,点击右下方的 Compare 按钮即开始进行对比。
在对比时有一个选项,默认为选择
Include storage in generated DDL for new objects
如果不选中的话将在产生的脚本中不包括对象的存储信息(如表空间信息等等)
完成后会自动显示对象间的不同信息如下图所示,如果对比的对象 DDL 语句完全相同则不会显示列表。
** 5 ** ** 、查看对象间的具体不同信息
**
通过比较显示了不同对象的列表后,可以选择你要查看的对象具体不同定义,同样支持多选,在下方将对应显示当前数据库用户下的对象要应用到目标数据库对象的脚本。
注:主要有以下几种情况会产生应用脚本
编号
|
情况
|
生成的脚本
|
实例
---|---|---|---
1
|
目标对象不存在
|
生成创建目标对象的全部脚本
|
表不存在
2
|
目标对象不同
|
生成修改脚本
|
表的字段大小不同
3
|
目标对象有但当前对象不存在
|
无任何提示
|
4
|
函数、过程、包体、触发器、视图对象定义不同
|
生成重新替换对象的脚本
|
函数定义不同
** 6 ** ** 、其它操作
**
对比后可以根据个人要求进行相应的操作
1. 保存脚本成文件
2. 复制脚本到 windows 剪贴板
3. ** 应用脚本到目标数据库 ** (进行此操作需比较小心,建议在全面检查对比产生的脚本后才能进行此项操作,特别是一些删除操作,因为这个操作是批量应用的,没有确认提示。)
4. ** 显示具体的不同信息 ** (功能非常强大,这是 PL/SQL DEVELOPER 借助第三方工具扩展的功能,当前版本用的工具是 ExamDiff1.6 版)
当前 ExamDiff1.6 版在对比方面功能一般,不过还是可以了,就是对汉字不太兼容,如果你有 ExamDiff3.2 或 3.3 的版本,只要通过配置对比工具将它指向你的对比工具就可以了,显示的效果更好。关于对比工具的操作,我不做详细的介绍。
5. 配置对比工具(根据个人要求定义自己的对比工具)
2005-03-20
叶正盛