虽然绝大多数情况用不大,但是10g的新特性,今天看到了
 
 
DBMS_FILE_TRANSFER举例
 
在这个例子中,我们的目标是将EXAMPLE表空间的数据文件移植到服务器的另外一个目录下。为了实现这个操作,我们要创建两个目录、将表空间脱机、进行复制、更改数据文件的位置、然后联机。为了对操作后的遗留数据进行清理,我们还将使用UTL_FILE.FREMOVE来删除该文件的原始副本。
 
  1. SQL> alter tablespace example offline; 
  2. Tablespace altered. 
  3.  
  4. SQL> create directory src_dir as '/u05/oradata/ord'
  5. Directory created. 
  6.  
  7. SQL> create directory tgt_dir as '/u09/oradata/ord'
  8. Directory created. 
  9.  
  10. SQL> begin 
  11. dbms_file_transfer.copy_file( 
  12. source_directory_object => 'SRC_DIR'
  13. source_file_name => 'example01.dbf'
  14. destination_directory_object => 'TGT_DIR'
  15. destination_file_name => 'example01.dbf'); 
  16. end
  17. PL/SQL procedure successfully completed. 
  18.  
  19. SQL> alter database rename file 
  20. '/u05/oradata/ord/example01.dbf' to 
  21. '/u09/oradata/ord/example01.dbf'
  22. Database altered. 
  23.  
  24. SQL> alter tablespace example online; 
  25. Tablespace altered. 
  26.  
  27. SQL> begin 
  28. utl_file.fremove ( 
  29. location => 'SRC_DIR'
  30. filename => 'example01.dbf'); 
  31. end
  32. PL/SQL procedure successfully completed. 
  33. SQL>