Oracle数据库批量创建表空间

当需要将外库的dmp文件导入Oracle数据库时,可能需要创建多个表空间。本文介绍了两种情况,一种是已知表空间名,另一种是未知表空间名。对于后者,提供了一种笨拙但有效的方法:通过创建临时表存储表空间名,然后从文本文件导入,生成并执行创建表空间的SQL语句,从而批量创建所需表空间。

我们在项目中可能会发生这样一种情况,需要将某一个外库导出来的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  autoextend on next 50m maxsize unlimited'  from tablespace_name;


4、将执行的结果放进一个sql文件,登录到相应数据库用户执行sql文件
执行sql文件的命令:@sql文件所在位置


至此,批量的表空间已经被创建好啦! 

有捷径的小伙伴欢迎分享!

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值