ORACLE数据库对比表结构
有时候会有某种需求:需要对比两个表的表结构是否一致,有时候甚至是整个数据库所有表的表结构对比......。表结构对比无非就是字段名、字段类型、字段数据类型、以及字段的顺序的对比。如果需要对比表结构,可以通过下面简单的脚本实现:
SELECT M.OWNER
,M.TABLE_NAME
,M.COLUMN_ID
,M.COLUMN_NAME
,M.DATA_TYPE
,M.DATA_LENGTH
,N.OWNER
,N.TABLE_NAME
,N.COLUMN_ID
,N.COLUMN_NAME
,N.DATA_TYPE
,N.DATA_LENGTH
FROM
(
SELECT OWNER
,TABLE_NAME
,COLUMN_ID
,COLUMN_NAME
,DATA_TYPE
,DATA_LENGTH
FROM DBA_TAB_COLUMNS
WHERE OWNER=&OWNER_A
AND TABLE_NAME=&TABLE_NAME_A
) M LEFT JOIN
(
SELECT OWNER
,TABLE_NAME
,COLUMN_ID
,COLUMN_NAME
,DATA_TYPE
,DATA_LENGTH
FROM DBA_TAB_COLUMNS
WHERE OWNER=&OWNER_B
AND TABLE_NAME=&TABLE_NAME_B
) N ON M.COLUMN_ID =N.COLUMN_ID
AND M.COLUMN_NAME = N.COLUMN_NAME
AND M.DATA_TYPE = N.DATA_TYPE
AND M.DATA_LENGTH= N.DATA_LENGTH
ORDER BY M.TABLE_NAME, M.COLUMN_ID;
但是如果A表与B表前面的字段一致,然而B表有一些额外的字段,那么上面的SQL(左连接)就会查不出两者之间结构的不同。此时需要使用右连接才能对比出真正的表结构。所以如果需要对比两者的表结构是否一致,最好左连接查一次,右连接查一次。才能真正的确认两者的表结构的异同。
SELECT M.OWNER
,M.TABLE_NAME
,M.COLUMN_ID
,M.COLUMN_NAME
,M.DATA_TYPE
,M.DATA_LENGTH
,N.OWNER
,N.TABLE_NAME
,N.COLUMN_ID
,N.COLUMN_NAME
,N.DATA_TYPE
,N.DATA_LENGTH
FROM
(
SELECT OWNER
,TABLE_NAME
,COLUMN_ID
,COLUMN_NAME
,DATA_TYPE
,DATA_LENGTH
FROM DBA_TAB_COLUMNS
WHERE OWNER=&OWNER_A
AND TABLE_NAME=&TABLE_NAME_A
) M RIGHT JOIN
(
SELECT OWNER
,TABLE_NAME
,COLUMN_ID
,COLUMN_NAME
,DATA_TYPE
,DATA_LENGTH
FROM DBA_TAB_COLUMNS
WHERE OWNER=&OWNER_B
AND TABLE_NAME=&TABLE_NAME_B
) N ON M.COLUMN_ID =N.COLUMN_ID
AND M.COLUMN_NAME = N.COLUMN_NAME
AND M.DATA_TYPE = N.DATA_TYPE
AND M.DATA_LENGTH= N.DATA_LENGTH
ORDER BY M.TABLE_NAME, M.COLUMN_ID;
ORACLE数据库对比表结构相关推荐
- Oracle数据库的表结构 简单表的建立
转载于:https://www.cnblogs.com/chouji717/p/5948299.html
- 数据库间表结构对比和数据对比
概述 对于企业软件开发或实施人员,在软件实施过程中,经常会遇到了这么一个问题,我们在客户那边安装了整个ERP程序并且向数据库中导入了客户提供给我的基础资料,程序进入试运行阶段,在试运行期间,客户反映出 ...
- MySQL 对比数据库的表结构
有时候,需要对比一下测试环境和生产环境中,数据库的表结构是否有所差异.有两个常用的工具. AmpNmp.DatabaseCompare GUI 界面,支持多种数据库(MySQL.SQL Server. ...
- oracle实验报告2:: Oracle数据库物理存储结构管理(含实验小结)
目录 实验目的 实验设备及器材 实验内容 实验步骤 实验过程 实验小结 实验目的 1.熟悉Oracle数据库物理存储结构: 2.掌握Oracle数据库数据文件的管理: 3.掌握Oracle数据库控制文 ...
- SQL巩固以及数据库、表结构优化
SQL巩固&数据库.表结构优化 前言 对于初级程序开发工程师而言,SQL是很多人的弱项,为此我给大家来做一下总结,希望能够帮到你们. 课程说明 1.介绍项目实战开发过程中常用的MySQL函数及 ...
- Oracle数据更新,表结构,约束
Oracle数据更新,表结构,约束 数据插入 insert into 表名称[(列名称1,列名称2,-)] values (值1,值2-): 字符串:使用单引号声明,例如:'sasda'; 数字:直接 ...
- oracle两个表数据比较,oracle数据库两表数据比较
1 引言 在程序设计的过程中,往往会遇到两个记录集的比较.如华东电网PMS接口中实现传递一天中变更(新增.修改.删除)的数据.实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进行比较等 ...
- 【Oracle数据库丢失表排查思路】
Oracle数据库丢失表排查思路 说明:由于系统采用ID取模分表法进行Oracle数据存储,某日发现Oracle数据库中缺少对应的几张业务数据表,遂进行相关问题查询,简单记录一下排查思路: 由于我们代 ...
- oracle删除表的一个字段的数据库,学会Oracle数据库删除表字段和Oracle数据库表增加字段方法...
Oracle数据库添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); Ora ...
最新文章
- 计算机视觉的基本概念
- vue 背景透明度_一款媒体小白喜爱的视频编辑软件,vue视频编辑APP,想学就来...
- 使用docker安装mysql服务
- 得到app文稿导出_再见了扫描仪!微信打开这个功能,一键将纸质文稿扫描成电子档...
- Qt Creator将纹理附加到材质
- LocalDateTime、LocalDate、Date的相互转换(亲测LocalDateTime转LocalDate)
- JQuery实现动态插入HTML模块
- visual studio 2019 HTML怎么自动生成代码_敲代码和编程适合什么样的笔记本?深度推荐...
- python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题
- linux ubuntu软件中心,安装Lubuntu 软件中心
- 【7】测试用例设计-等价类分析法
- HTML5 学习(1) -- 介绍
- linux daemon 函数,Daemon 进程的创建
- 24种设计模式与6大原则
- android--关于apk加密那点事的思考
- 拓扑排序 java_[Java]聊聊拓扑排序算法
- 恭贺武汉大学国际软件学院考生集体通过LPI一级认证
- ROS学习笔记之——MAC安装ubuntu虚拟机
- Astalavista被蹂躏过程(转载自baoz.net)
- Ubuntu 16.04 笔记本双显卡安装 CUDA9.0