oracle 比较两个用户表结构的区别。
create table ESPACE_TABLE
(
TABLE_NAME VARCHAR2(100) not null
)
create table ESPACE_COLUMN
(
TABLE_NAME VARCHAR2(100) not null,
COLUMN_NAME VARCHAR2(100) not null
)
create table UC_TABLE_DIFFERENT
(
S_TABLE_NAME VARCHAR2(30),
B_TABLE_NAME VARCHAR2(30),
S_COLUMN_NAME VARCHAR2(30),
B_COLUMN_NAME VARCHAR2(30),
S_DATA_TYPE VARCHAR2(106),
B_DATA_TYPE VARCHAR2(106),
S_DATA_LENGTH NUMBER,
B_DATA_LENGTH NUMBER,
S_DATA_PRECISION NUMBER,
B_DATA_PRECISION NUMBER,
S_DATA_SCALE NUMBER,
B_DATA_SCALE NUMBER,
S_NULLABLE VARCHAR2(1),
B_NULLABLE VARCHAR2(1),
S_DATA_DEFAULT VARCHAR2(4000),
B_DATA_DEFAULT VARCHAR2(4000)
)
create table SDU_TABLES
(
TABLE_NAME VARCHAR2(30) not null,
COLUMN_NAME VARCHAR2(30) not null,
DATA_TYPE VARCHAR2(106),
DATA_LENGTH NUMBER not null,
DATA_PRECISION NUMBER,
DATA_SCALE NUMBER,
NULLABLE VARCHAR2(1),
DATA_DEFAULT VARCHAR2(4000)
)
create table UC_TABLE_DIFFERENT
(
S_TABLE_NAME VARCHAR2(30),
B_TABLE_NAME VARCHAR2(30),
S_COLUMN_NAME VARCHAR2(30),
B_COLUMN_NAME VARCHAR2(30),
S_DATA_TYPE VARCHAR2(106),
B_DATA_TYPE VARCHAR2(106),
S_DATA_LENGTH NUMBER,
B_DATA_LENGTH NUMBER,
S_DATA_PRECISION NUMBER,
B_DATA_PRECISION NUMBER,
S_DATA_SCALE NUMBER,
B_DATA_SCALE NUMBER,
S_NULLABLE VARCHAR2(1),
B_NULLABLE VARCHAR2(1),
S_DATA_DEFAULT VARCHAR2(4000),
B_DATA_DEFAULT VARCHAR2(4000)
)
CREATE OR REPLACE PROCEDURE COMPARE_UC_TABLES
AS
BEGIN execute immediate 'delete from sdu_tables';
execute immediate 'delete from bmp_tables';
execute immediate 'delete from uc_table_different'; execute immediate 'insert into sdu_tables select
A.Table_Name,
A.column_name ,A.data_type ,A.data_length ,A.data_precision ,
A.Data_Scale ,A.nullable ,Default_value(a.OWNER,a.Table_Name,a.column_name) as Data_default
from
dba_tab_columns A
where
A.owner=''SDU'' and SUBSTR(TABLE_NAME,1,4) != ''BIN$''';
execute immediate 'insert into bmp_tables select
A.Table_Name,
A.column_name ,A.data_type ,A.data_length ,A.data_precision ,
A.Data_Scale ,A.nullable ,Default_value(a.OWNER,a.Table_Name,a.column_name) as Data_default
from
dba_tab_columns A
where
A.owner=''BMP'' and SUBSTR(TABLE_NAME,1,4) != ''BIN$'''; DELETE FROM sdu_tables WHERE TABLE_NAME IN (SELECT TABLE_NAME FROM ESPACE_TABLE);
DELETE FROM bmp_tables WHERE TABLE_NAME IN (SELECT TABLE_NAME FROM ESPACE_TABLE);
DELETE FROM sdu_tables S WHERE EXISTS (SELECT 1 FROM ESPACE_COLUMN E WHERE E.TABLE_NAME = S.TABLE_NAME AND E.COLUMN_NAME = S.COLUMN_NAME);
DELETE FROM bmp_tables B WHERE EXISTS (SELECT 1 FROM ESPACE_COLUMN E WHERE E.TABLE_NAME = B.TABLE_NAME AND E.COLUMN_NAME = B.COLUMN_NAME);
commit; execute immediate 'insert into uc_table_different select *
from (select s.Table_Name s_Table_Name,
b.Table_Name b_Table_Name,
s.column_name s_column_name,
b.column_name b_column_name,
s.data_type s_data_type,
b.data_type b_data_type,
s.data_length s_data_length,
b.data_length b_data_length,
s.data_precision s_data_precision,
b.data_precision b_data_precision,
s.Data_Scale s_Data_Scale,
b.Data_Scale b_Data_Scale,
s.nullable s_nullable,
b.nullable b_nullable,
s.Data_default s_Data_default,
b.Data_default b_Data_default
from sdu_tables s
full join bmp_tables b on s.Table_Name = b.Table_Name
and s.column_name = b.column_name)
where s_column_name is null
or b_column_name is null
or s_data_type != b_data_type
or s_data_length != b_data_length
or s_data_precision != b_data_precision
or s_Data_Scale != b_Data_Scale
or s_nullable != b_nullable
or s_Data_default != b_Data_default'; commit; END COMPARE_UC_TABLES;
begin
compare_uc_tables;
end;
/
select * from uc_table_different ;
oracle 比较两个用户表结构的区别。的更多相关文章
- 利用powerDesigner15.1连接oracle数据库并自动生成表结构
利用powerDesigner15.1连接oracle数据库并自动生成表结构 参考:http://blog.csdn.net/qq_24531461/article/details/76713802 ...
- Oracle EBS BOM模块常用表结构
表名: bom.bom_bill_of_materials 说明: BOM清单父项目 BILL_SEQUENCE_ID NUMBER 清单序号(关键字)ASSEMBLY_ITEM_ID NUMBE ...
- oracle insert两个关联表
现有一张老师学生表(tb_tea_cou),由于业务需要,需把老师学生表tb_tea_stu拆分成两张表(tb_tea.tb_cou),并把记录insert到这两张子表中(tb_tea.tb_cou为 ...
- oracle查看当前用户表结构、主键、索引
1.查询表的所有列及其属性 select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = ...
- Oracle数据库体系结构及创建表结构
Oracle服务器主要由实例.数据库.程序全局区和前台进程组成,其中实例就是用来提供管理数据库的功能:数据库由数据库文件组成,用来存储系统数据:实例可以进一步划分为系统全局区(SGA)和后台进程(PM ...
- Oracle 关于定义约束 / 修改表结构 /修改约束
---约束分5种:主键 外键 唯一 非空 检查5类约束 Oracle中分列级别约束 与 表级别约束 列级别约束:在创建表时再列上面加约束 例如: create table table11( stuno ...
- <正则吃饺子>:关于使用powerDesign连接oracle数据库,导出数据表结构(ER图吧)
最近做的项目中,没有完整的数据库表结构图(ER图),自己就根据服务器上oracle数据库和powerdesign整理一份,但是存在两个问题:1.没有把数据库表的相关备注弄下来:2.数据库表中的主外键关 ...
- Oracle与Sql Server复制表结构和数据
1.Oracle create table 新表名 AS SELECT * FROM 源表名 2.Sql Server SELECT * into 新表名 from 源表名 版权声明:笔者:jiank ...
- oracle数据库自动生成数据库表结构文档(亲测有效)
import java.awt.Color; import java.io.FileOutputStream; import java.sql.Connection; import java.sql. ...
随机推荐
- PIE SDK热力图
1.算法功能简介 热力图,也就热图或者热点图,它能以特殊高亮的的形式显示某一区域的等级的优越性.重要性或者某一区域类别的密度和变换趋势:例如百度地图热力图 是用不同颜色的区块叠加在地图上实时描述人 ...
- 小程序wxml文件引用方式
import<!--header.wxml --> <template name="item"> <text>{{text}}</text ...
- 2019.03.28 读书笔记 关于lock
多线程就离不开lock,lock的本质是一个语法糖,采用了监视器Monitor. lock的参数,错误方式有很多种,只需要记住一种:private static readonly object loc ...
- SEO艺术阅读笔记
SEO(Search Engine Optimization)搜索引擎优化 搜索引擎:反映认知,连接贸易搜索引擎基础百度搜索高级语法确定SEO目标,定义网站受众设定SEO目标开发前定制SEO方案理 ...
- 【程序员技术练级】学习一门脚本语言 python(二)遍历本地文件系统
这篇将讲述怎么使用python来遍历本地文件系统,并把文件按文件大小从小到大排序的一个小例子 在这个例子中,主要会用到python内置的和OS模块的几个函数: os.walk() : 该方法用来遍历指 ...
- JS常用的设计模式(5)——代理模式
代理模式的定义是把对一个对象的访问, 交给另一个代理对象来操作. 举一个例子, 我在追一个MM想给她送一束花,但是我因为我性格比较腼腆,所以我托付了MM的一个好朋友来送. 这个例子不是非常好, 至少我 ...
- jQuery获取table表中的td标签
首先我来介绍一下我遇到的问题 1.当有一个table表包含了<tr>标签,<td>标签,大致可以认为是这样的: <tr> <td> @scene.ID ...
- 6、Angular Route 路由
1.没有嵌套路由 类似 ui-route 上述的html用红字标记的是必须导入的.这是因为:路由并不在ng2中,需要我们额外引入,另外我们需要设置base href,这是个什么东西呢?相当于我们后续所 ...
- Hibernate中的一对一注解配置
Card类 package cn.OneToOne2017109.entity; import javax.persistence.*; /** * Created by YSS on 2017/10 ...
- csharp:汉字转带拼音声调
{ ...