关于ORACLE数据库表结构的批量变更方案

来源:互联网  作者:本站整理
摘要:在进行ORACLE数据库项目的开发过程,表结构经常需要批量的变更,如果少的话,也没什么,要是到了50个表左右,就得想想了!…

在进行ORACLE数据库项目的开发过程,表结构经常需要批量的变更,如果少的话,也没什么,要是到了50个表左右,就得想想了!

操作流程如下:

1.建立工作目录

[00_RELEASE]
  [01_BACKUP]  [02_EXPDATA]  [03_DESCRIPT]  [04_DLL]  [05_LOG]

[01_BACKUP]所有以前表结构的DDL描述。
  [02_EXPDATA]对要操作表的dmp备份。
  [03_DESCRIPT]旧数据库中的表结构描述文件,对比以前的表结构,修正录入新的数据。
  [04_DLL]最新的DLL文本及DOS .bat 运行环境。
  [05_LOG]操作过程中的相关日志信息。

2.备份DDL文档,以日期为单位,把相关DDL放入[01_BACKUP]。

[废话]在linux行,一般都是直接cp的,但是前提,数据必须有一定要求存放,windows,文件夹的位置,不规律,就直接用手了。

3.导出要变更的所有表。

exp TIGER/TIGER@DB file=c:\00_RELEASE\02_EXPDATA\20090913-1UINTbase tables(TABLE1,TABLE2,TABLE3)

4.导出旧表的表结构(BAT文件)

DESC TABLE1;
  DESC TABLE2;
  DESC TABLE3;

SELECT   *   FROM   ALL_TAB_COLUMNS   WHERE   OWNER = 'TIGER' AND  TABLE_NAME   ='TABLE1'
  SELECT   *   FROM   ALL_TAB_COLUMNS   WHERE   OWNER = 'TIGER' AND  TABLE_NAME   ='TABLE2'
  SELECT   *   FROM   ALL_TAB_COLUMNS   WHERE   OWNER = 'TIGER' AND  TABLE_NAME   ='TABLE3'

5.备份所有表数据(CSV,EXCEL)(BAT文件)

SELECT COUNT(*) FROM TABLE1;
  SELECT COUNT(*) FROM TABLE2;
  SELECT COUNT(*) FROM TABLE3;

6.删除要变更的表(BAT文件)

DROP TABLE1;
  DROP TABLE2;
  DROP TABLE3;

7.将DDL描述文件放入[04_DLL]文件夹,更新DDL执行一览。

具体的就按这个吧,linux上道理一样,把bat变成bshell或者cshell就行了。

http://blog.csdn.net/open_sky/archive/2009/08/27/4489946.aspx

系统的procedure和KBN的DDL执行同样用这种方法,批量执行。

8.导入原有数据

恩,整理了一下!

【相关文章】好搜一下
浅析Oracle数据库关闭的三种方法

浅析Oracle数据库关闭的三种方法

Oracle数据库关闭的方法很多,下面就为您介绍了最常用的三种关闭Oracle数…