Oracle 批量建表空间


最近遇到一个问题,就是在数据迁移的时候,要分析一下别人的表结构。当时把别人的库的表空间,表结构,数据导出来了一份。回来后要把这些表空间创建到自己库中,用于分析以前的数据库。

我当时是把用户的表和表空间导入到一个csv文件中,把数据的前1000条导入dmp中。

表有一千多张,表空间有一百多个,要把这一百多个文件建立起来,要是一个一个的建会累死人,我就想能不能批量去创建表空间。于时我上网查了一下没有这方面的介绍。后来用了一种方法实现了。下面把这种方法介绍给大家:

1. 创建一张表,把表空间名导入到这张表中。

 create table space_name(

       name varchar2(20)

 )

2.把csv中空的表空间名导入到表中。

“Tools” --> "Text Importer"

出现如下的界面:

Oracle 批量建表空间

点击“红色区域”按钮,导入csv文件,然后指定owner,表空间,表名,列名,字段类型。最后点击“Import”按钮,执行导入。

3. 执行如下Sql :

select 'create tablespace ' || name  || ' DATAFILE ''F:\OracleData\cdcdata\' || name || '01.dbf''  SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;'

from table_space

生成所有的创建表空间命令,然后把查询结果导出到sql 文件中,命名为“cdc_tablespaces_sql.sql”。

4. 执行 @E:\gavi\cdc_tablespaces_sql.sql,批量创建表空间。

相关内容