`
jak47
  • 浏览: 72259 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

oracle里对两个schema进行比较

阅读更多

工作中常常要对两台不同DB服务器的schema进行比较。比如测试机器和本番机器。

比较内容有各个表的字段的长度,属性,还有index等。

采取的办法是执行下面三个sql文,把DB情报生成出文件,然后对文件进行diff处理。

 

1. 抽出各个表的字段情报。

set echo off;
set linesize 30000;
set pagesize 32767;
set trimspool on;
set autocommit off;
set exitcommit off;
set null NULL;
COLUMN DATA_TYPE FORMAT A20;

spool columns.txt;

SELECT TABLE_NAME,
  COLUMN_NAME,
  DATA_TYPE,
  DATA_LENGTH,
  CHAR_LENGTH,
  DATA_PRECISION,
  DATA_SCALE,
  NULLABLE,
  COLUMN_ID
FROM USER_TAB_COLUMNS
ORDER BY TABLE_NAME,
  COLUMN_ID;

spool off;

 

2. 抽出index相关情报。

set echo off;
set linesize 30000;
set pagesize 32767;
set trimspool on;
set autocommit off;
set exitcommit off;
set null NULL;

spool indexes.txt;

SELECT TABLE_NAME,
  INDEX_NAME,
  INDEX_TYPE,
  UNIQUENESS FROM USER_INDEXES
ORDER BY TABLE_NAME,
  INDEX_NAME;

spool off;

 

3. 抽出index各个字段的情报。

set echo off;
set linesize 30000;
set pagesize 32767;
set trimspool on;
set autocommit off;
set exitcommit off;
set null NULL;
COLUMN COLUMN_NAME FORMAT A40;

spool index_columns.txt;

SELECT TABLE_NAME,
  INDEX_NAME,
  TRIM(COLUMN_NAME) COLUMN_NAME,
  COLUMN_POSITION,
  DESCEND
FROM User_Ind_Columns
WHERE TABLE_NAME NOT LIKE 'BIN%'
ORDER BY TABLE_NAME,
  INDEX_NAME,
  COLUMN_POSITION;

spool off;

 

分享到:
评论

相关推荐

    Oracle权限不足问题集锦

    我现在想从我的存储过程中使用其他 schema 表来执行 SQL 语句。存储过程是一个 Schema,表是在另一个 Schema。 但 是 这 样 做 的 结 果 是 出 现 了 “ORA-01031: ...答:你的两个 Schema 是在同一个 Oracle 实

    一个oracle客户端(oracle sql handler)

    本软件是一款 Oracle 客户端工具 - 专用于 Oracle 数据库...例如,输入 “%NAME” 或 “NAME%” 或 “%NAME%”,能查找包含子串 “NAME” 的所有对象名,通过弹出菜单可以对每一个对象进行操作,如修改、删除、查看等

    生成基于Oracle的jBPM数据库脚本

    其中我们要用到的是 jbpm 和 jbpm-db两个目录。 2. 导航到 jbpm-db 子目录。在该目录下可以找到 build.properties 文件。这个文件需要作一定修改才能使用。 找到下面的这段代码: jbpm.3.location=C:/jbpm-X.X ...

    Oracle9i数据库系统概述.pdf

    每个Oracle数据库要求至少有两 个或两个以上的控制文件。 7 除了以上三类物理文件之外,数据库中还包 含初始化参数文件、口令文件、归档的日志 文件等物理文件。 初始化参数文件在数据库启动和数据库性能 调优时使用...

    数据库中的Schema和Database的区别

    在mysql中创建一个Schema和创建一个Database的效果好像是一样的,但是在sqlserver和orcal数据库中效果又是不同的,目前我只能理解为在mysql中schema<==>database;  数据库中的user和schema的关系:  假如...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。  自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户  创建角色 SQL> create role admin;  授权给...

    oracle高级面试50问

    给出两个检查表结构的方法  解答:1。DESCRIBE命令  2. DBMS_METADATA.GET_DDL 包  6. 怎样查看数据库引擎的报错  解答:alert log.  7. 比较truncate和delete 命令  解答:两者都可以用来删除表...

    最全的oracle常用命令大全.txt

    ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...

    Oracle面试题 oracle学习题

    5. 给出两个检查表结构的方法 6. 怎样查看数据库引擎的报错 7. 比较truncate和delete 命令 8. 使用索引的理由 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 10. FACT Table上需要建立何种索引? 11. 给...

    在RHEL3上安装ORALCE9I

    在rhel4上安装oracle10g的时候,当把安装文件传到/software上后,可能部分文件的权限会发生改变,像我在装的时候就出现了一下两个问题: [oracle@test oraclelinux]$ ./runInstaller ./runInstaller: line 54: /...

    exp和imp用法和介绍

    exp和imp用法和介绍,Oracle Export/Import工具用于在数据库之间传递数据。 Export从数据库中导出数据到dump文件中 ...(3)、从一个SCHEMA传送到另一个SCHEMA (4)、从一个TABLESPACE传送到另一个TABLESPACE

    Oracle8i_9i数据库基础

    §2.4.1 用 ORDER BY 子句来对结果进行排序 76 §2.4.2 用 BREAK 命令 来对结果进行排列 76 §2.4.3 用 COMPUTE 命令对结果进行格式化 79 §2.5 配置会话环境 82 §2.5.1 ARRAYSIZE(取回的行数) 82 §2.5.2 ...

    oracle详解

    导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...

    oracle安装及备份

    oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。 SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例。 数据导出: 1 将数据库TEST...

    Oracle中sys和system的区别小结

    (1)sys — sysdba system –sysoper (2)startup/shutdown/dba管理两个都能做 (3)sys拥有数据字典(dictionay),或者说dictionay属于sys schema (4)sysdba比sysoper多了一个create database的权限 3....

    oracle触发器实例讲解

    oracle触发器实例讲解2008-11-27 09:17--[6]// Oracle Trigger ---------------------------------------------------------------------------------------------// --实例1------------------------ --创建触发器...

    Toad 使用快速入门

    支持同时连接到多个数据库,同时对多个数据库进行操作  允许编辑SQL,PLSQL,JAVA,HTML和文本 使用书签功能,可以在大量SQL语句里,快速定位某个语句所在位置  SQL Editor本身具有强大的编辑功能,非常...

    Oraclet中的触发器

    2 替代触发器:由于在ORACLE里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发器。它就是ORACLE 8专门为进行视图操作的一种处理方法。 3系统触发器:ORACLE 8i 提供了第三种类型的触发器叫...

    Mindsware动态数据对象平台v0.2版发布

    1、顾名思义:这个框架主要完成两个功能: (1)实现Object to Database Mapping,开发者再也不用编写复杂的insert, update 和delete了,而且对Oracle, Sql Server以及各种OLEDB数据源支持透明访问。 其中Oracle和Sql ...

    Mindsware DataObjects & DynamicDataSheet Framework

    1、顾名思义:这个框架主要完成两个功能: (1)实现Object to Database Mapping,开发者再也不用编写复杂的insert, update 和delete了,而且对Oracle, Sql Server以及各种OLEDB数据源支持透明访问。 其中Oracle和Sql ...

Global site tag (gtag.js) - Google Analytics