我们在项目中可能会发生这样一种情况,需要将某一个外库导出来的dmp文件恢复到自己的库中,便于查看数据,这时候就有可能会出现需要建立多表空间的情况。这里有两种可能,一种是已知表空间名的情况,另一种就是连表空间名都完全不知道的,以上两种情况第一种毫不费力,第二种就只能完全靠笨办法,试着导入文件到自己的库中,根据导入报的错来确定表空间名(报错会有提示),不然没有创建需要的表空间导入会一直出错,数据无法导入进数据库。这确实是个大工程,但是如果确实也没人给你所有的表空间,那就只有靠这种笨办法来了。
批量创建表空间
1、先在数据库中创建一张表,需要一个字段来存放表空间名
e.g.
create table tablespace_name(name varchar2(10));
2、将所有表空间名放入一个文件中(如txt),插入到新建的表中
例如我这里是需要新建50个表空间,那就需要把所有的表空间名放在txt文件中,格式如下:
3、在Oracle连接工具(developer/Navicat等)中执行表空间创建语句
select 'create tablespace ' || name|| ' datafile ''D:\oracle\oradata\test' || name|| '.dbf'' size 100m autoext