Oracle从10g引入包dbms_file_transfer,下面给一个dbms_file_transfer.copy_file的使用例子:
SQL*Plus: Release 12.1.0.2.0 Production on Mon Sep 14 15:16:06 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
+DATA/orcl/datafile/system.260.854191187
+DATA/orcl/datafile/sysaux.268.854191187
+DATA/orcl/datafile/undotbs1.263.854191187
+DATA/orcl/datafile/users.267.854191187
+DATA/orcl/datafile/undotbs2.258.854191485
+DATA/orcl/datafile/example.259.854191305
+DATA/orcl/datafile/eport_tab_s.271.854271185
+DATA/orcl/datafile/eport_tab_l.281.854272341
+DATA/orcl/datafile/eport_tab_l.272.854271187
+DATA/orcl/datafile/eport_fee_idx.273.854271189
+DATA/orcl/datafile/eport_tab_xl.282.854272371
FILE_NAME
--------------------------------------------------------------------------------
+DATA/orcl/datafile/eport_tab_xl.274.854271191
+DATA/orcl/datafile/eport_fee_tab.275.854271195
+DATA/orcl/datafile/eport_idx_s.276.854271197
+DATA/orcl/datafile/eport_idx_l.277.854271199
+DATA/orcl/datafile/jablog.278.854271201
+DATA/orcl/datafile/jablog_blob.279.854271203
+DATA/orcl/datafile/dpe.280.854271207
+DATA/orcl/datafile/tes150820t
+DATA/orcl/datafile/tst_150820.284.888246997
20 rows selected.
SQL> create directory data as '+DATA/orcl/datafile';
Directory created.
SQL> create directory b_data as '/s01/app/oracle/backup';
Directory created.
SQL> begin
2 dbms_file_transfer.copy_file('data','eport_tab_xl.274.854271191','b_data','eport_tab_xl.274.dbf');
3 end;
4 /
PL/SQL procedure successfully completed.