工作中常常要对两台不同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;
相关推荐
我现在想从我的存储过程中使用其他 schema 表来执行 SQL 语句。存储过程是一个 Schema,表是在另一个 Schema。 但 是 这 样 做 的 结 果 是 出 现 了 “ORA-01031: ...答:你的两个 Schema 是在同一个 Oracle 实
本软件是一款 Oracle 客户端工具 - 专用于 Oracle 数据库...例如,输入 “%NAME” 或 “NAME%” 或 “%NAME%”,能查找包含子串 “NAME” 的所有对象名,通过弹出菜单可以对每一个对象进行操作,如修改、删除、查看等
其中我们要用到的是 jbpm 和 jbpm-db两个目录。 2. 导航到 jbpm-db 子目录。在该目录下可以找到 build.properties 文件。这个文件需要作一定修改才能使用。 找到下面的这段代码: jbpm.3.location=C:/jbpm-X.X ...
每个Oracle数据库要求至少有两 个或两个以上的控制文件。 7 除了以上三类物理文件之外,数据库中还包 含初始化参数文件、口令文件、归档的日志 文件等物理文件。 初始化参数文件在数据库启动和数据库性能 调优时使用...
在mysql中创建一个Schema和创建一个Database的效果好像是一样的,但是在sqlserver和orcal数据库中效果又是不同的,目前我只能理解为在mysql中schema<==>database; 数据库中的user和schema的关系: 假如...
EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。 自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户 创建角色 SQL> create role admin; 授权给...
给出两个检查表结构的方法 解答:1。DESCRIBE命令 2. DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表...
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
5. 给出两个检查表结构的方法 6. 怎样查看数据库引擎的报错 7. 比较truncate和delete 命令 8. 使用索引的理由 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 10. FACT Table上需要建立何种索引? 11. 给...
在rhel4上安装oracle10g的时候,当把安装文件传到/software上后,可能部分文件的权限会发生改变,像我在装的时候就出现了一下两个问题: [oracle@test oraclelinux]$ ./runInstaller ./runInstaller: line 54: /...
exp和imp用法和介绍,Oracle Export/Import工具用于在数据库之间传递数据。 Export从数据库中导出数据到dump文件中 ...(3)、从一个SCHEMA传送到另一个SCHEMA (4)、从一个TABLESPACE传送到另一个TABLESPACE
§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幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。 SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例。 数据导出: 1 将数据库TEST...
(1)sys — sysdba system –sysoper (2)startup/shutdown/dba管理两个都能做 (3)sys拥有数据字典(dictionay),或者说dictionay属于sys schema (4)sysdba比sysoper多了一个create database的权限 3....
oracle触发器实例讲解2008-11-27 09:17--[6]// Oracle Trigger ---------------------------------------------------------------------------------------------// --实例1------------------------ --创建触发器...
支持同时连接到多个数据库,同时对多个数据库进行操作 允许编辑SQL,PLSQL,JAVA,HTML和文本 使用书签功能,可以在大量SQL语句里,快速定位某个语句所在位置 SQL Editor本身具有强大的编辑功能,非常...
2 替代触发器:由于在ORACLE里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发器。它就是ORACLE 8专门为进行视图操作的一种处理方法。 3系统触发器:ORACLE 8i 提供了第三种类型的触发器叫...
1、顾名思义:这个框架主要完成两个功能: (1)实现Object to Database Mapping,开发者再也不用编写复杂的insert, update 和delete了,而且对Oracle, Sql Server以及各种OLEDB数据源支持透明访问。 其中Oracle和Sql ...
1、顾名思义:这个框架主要完成两个功能: (1)实现Object to Database Mapping,开发者再也不用编写复杂的insert, update 和delete了,而且对Oracle, Sql Server以及各种OLEDB数据源支持透明访问。 其中Oracle和Sql ...