最近遇到一个问题,就是在数据迁移的时候,要分析一下别人的表结构。当时把别人的库的表空间,表结构,数据导出来了一份。回来后要把这些表空间创建到自己库中,用于分析以前的数据库。
我当时是把用户的表和表空间导入到一个csv文件中,把数据的前1000条导入dmp中。
表有一千多张,表空间有一百多个,要把这一百多个文件建立起来,要是一个一个的建会累死人,我就想能不能批量去创建表空间。于时我上网查了一下没有这方面的介绍。后来用了一种方法实现了。下面把这种方法介绍给大家:
1. 创建一张表,把表空间名导入到这张表中。
create table space_name(
name varchar2(20)
)
2.把csv中空的表空间名导入到表中。
“Tools” –> “Text Importer”
出现如下的界面:
点击“红色区域”按钮,导入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,批量创建表空间。