今天做项目的时候遇到一个问题:从dump文件恢复oracle数据库时因为没表空间报错,无法恢复,手动创建了几个还是报错,输出语句后发现表空间有300+多个!!!!300+,手动创建要死人的,在网上找了一圈,没发现什么好的方法,然后突然想到可以通过把表空间名字弄到一张表里面,然后生成sql方式批量创建,遂记录如下:
- 在数据库中创建一张表用于记录表空间名字123create table space_name(name varchar2(20))
- 把表空间名字全部导入进space_name这张表
- 执行如下SQL:123select 'create tablespace ' || name || ' DATAFILE ''D:\oracle\data\' || name ||'.ORA'' SIZE 200M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;'from table_space
- 再把执行后输出的数据拿出去执行就能批量创建表空间了