在pl sql中将文件从一个目录复制到另一个目录

时间:2014-12-15 11:33:56

标签: oracle plsql

我想使用“UTL”功能将文件从一个目录复制到另一个目录。

  

源目录= EXPORT_PPM_TEMP
  目标目录= EXPORT_PPM

我正在保存集合中的所有文件名,并循环遍历集合并复制到目标目录。

  

集合名称= vc_file_name。

我使用下面的代码进行复制。它正在复制所有文件,但有些文件正在复制为空文件

FOR i IN 1 .. vc_index    
      LOOP  
  vc_lp_file_name := vc_file_name(i);

  Utl_File.Fcopy('EXPORT_PPM_TEMP',vc_lp_file_name,'EXPORT_PPM',vc_lp_file_name);
  Utl_File.Fremove('EXPORT_PPM_TEMP',vc_lp_file_name);

END LOOP;

使用内容处理某些文件的原因是什么,而某些文件没有内容

1 个答案:

答案 0 :(得分:0)

DECLARE
   in_file  utl_file.file_type;
   s        VARCHAR2(200);
   c        NUMBER := 0;
   out_file utl_file.file_type;
BEGIN
   in_file  := utl_file.fopen('/scratch/fccus/dbDump/BT', 'rocs.001.001.06.xml', 'R');
   out_file := utl_file.fopen('/scratch/fccus/dbDump/BT/success', 'rocs.001.001.06.xml', 'W');
   LOOP
      utl_file.get_line(in_file, s);
      utl_file.put_line(out_file, s);
      --dbms_output.put_line(s);
      c := c + 1;
   END LOOP;
EXCEPTION
   WHEN no_data_found THEN
      utl_file.fclose(in_file);
      utl_file.fclose(out_file);
      dbms_output.put_line('Number of lines: ' || c);
END;