oracle 在plsql中将文件从一个目录复制到另一个目录

ffdz8vbo  于 2022-11-03  发布在  Oracle
关注(0)|答案(1)|浏览(309)

我想使用“UTL”功能将文件从一个目录复制到其他目录。
源目录=导出PPM TEMP
目标目录= EXPORT_PPM
我正在将所有文件名保存在集合中,并在集合中循环,然后复制到目标目录。
集合的名称= vc文件名。
我正在使用下面的代码来复制。它正在复制所有文件,但一些文件复制为空文件

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;

复制一些有内容的文件和一些没有内容的文件的原因是什么

kqlmhetl

kqlmhetl1#

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;

相关问题