可以利用exp,imp完成表空间的复制
步骤如下:
(1) 将要转化的表空间设为只读状态
SQL> alter tablespace tts_ex1 read only;
Tablespace altered.
SQL> alter tablespace tts_ex2 read only;
Tablespace altered.
(2) 使用exp命令导出表空间
exp userid="""sys/change_on_install as sysdba"""
transport_tablespace=y tablespaces=(tts_ex1,tts_ex2)
(3) 复制表空间tts_ex1中的数据文件到另外位置
host XCOPY c:\oracle\oradata\tkyte816\tts_ex?.dbf c:\temp
C:\oracle\oradata\tkyte816\TTS_EX1.DBF
C:\oracle\oradata\tkyte816\TTS_EX2.DBF
(4) 使用imp命令导入
imp file=expdat.dmp userid="""sys/manager as sysdba"""
transport_tablespace=y datafiles=(c:\temp\tts_ex1.dbf,c:\temp\tts_ex2.dbf)"
希望能帮到您!
对于每表独立表空间,表空间名称与 文件/表 名称的名称相同,即对于上面的表 t1,表空间名称将为 t1。如果它是使用名称 my_tablespace 创建的常规(或共享)表空间,则该表空间名称将是 my_tablespace。这些表空间用唯一的 ID 标识,称为 tablespace ID。
create table from table