首页 > 代码库 > 项目产品化升级数据库脚本问题——如何查询两个数据库差异的库表或者数据
项目产品化升级数据库脚本问题——如何查询两个数据库差异的库表或者数据
项目产品化能够解决svn版本问题,防止一个现场发现问题需要修改多套程序的问题。但是同时带来新的问题,在项目需求变化的时候或者升级一个产品的时候,对应的数据库脚本就成为关键,这里介绍一个解决方法——数据链对比法。 通过建立数据链对比缺少的库表以及各种配置数据。当然,如果在开发的时候就合理的管理的数据库脚本就不会存在这样的问题
步骤:
1、建立数据链,打开pl/sql,右键点击database_links——新建,填写信息即可,对应的sql语句为,这里我建一个名字叫TEST的数据链
-- Drop existing database link drop database link TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM; -- Create database link create database link TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM connect to **** identified by **** using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = ***.**.**.**)(PORT = 1521)))(CONNECT_DATA =http://www.mamicode.com/(SERVICE_NAME = **)))';
2、使用数据链作对比,这里介绍一下wm_concat()这个函数,这个函数可以将行值变成一列
select wm_concat(a.table_name) from user_tables a where a.table_name not in (select table_name from user_tables@TEST)
这样就可以得到现场库与开发库之间数据库库表的差异,导出不存在的库表。
如果有数据库配置表,也可以用同样的方法查出现在数据库中缺少的配置数据
项目产品化升级数据库脚本问题——如何查询两个数据库差异的库表或者数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。