Listing B set serverout on DECLARE v_archivedir VARCHAR2(30) := 'ARCHDIR'; v_tempdir VARCHAR2(30) := 'TEMPDIR'; v_asm_logname VARCHAR2(100); v_win_logname VARCHAR2(100); v_first_log_seq NUMBER := 12; v_last_log_seq NUMBER := 14; v_log_seq VARCHAR2(5); CURSOR c_logs IS SELECT name FROM v$archived_log WHERE sequence# BETWEEN v_first_log_seq AND v_last_log_seq ORDER BY sequence#; BEGIN FOR i IN c_logs LOOP v_asm_logname := SUBSTR(i.name, 16); v_log_seq := SUBSTR(v_asm_logname,4,5); v_win_logname := 'orcl_arc'||v_log_seq||'.log'; DBMS_FILE_TRANSFER.COPY_FILE(v_archivedir, v_asm_logname, v_tempdir, v_win_logname); DBMS_OUTPUT.PUT_LINE(v_asm_logname||' copied to '|| v_win_logname||'.'); END LOOP; END; / SQL> @copyasm_b arc00012_0578762891.001 copied to orcl_arc00012.log. arc00013_0578762891.001 copied to orcl_arc00013.log. arc00014_0578762891.001 copied to orcl_arc00014.log. PL/SQL procedure successfully completed. SQL>