whenever oserror exit 11 whenever sqlerror exit 11 set pagesize 0 linesize 500 trimspool on verify off pause off set echo off timing off feedback off variable v_log_archive_format varchar2(80) variable v_log_archive_dest varchar2(80) variable v_db_name varchar2(80) variable v_thread varchar2(10) variable v_new_log_seq number begin select value into :v_log_archive_format from v$parameter where name = 'log_archive_format'; -- select value into :v_log_archive_dest from v$parameter where name = 'log_archive_dest'; -- select value into :v_db_name from v$parameter where name = 'db_name'; -- select decode(value, '0', '1', value) into :v_thread from v$parameter where name = 'thread'; -- select sequence# into :v_new_log_seq from v$log where status = 'CURRENT'; end; / select '!&1 ' || :v_log_archive_dest || replace(replace(replace(replace(:v_log_archive_format,'%S', ltrim(to_char(sequence#, '00000000'))), '%s', ltrim(to_char(sequence#))), '%T', ltrim(to_char(:v_thread, '00000000'))), '%t', ltrim(to_char(:v_thread))) || ' &2:' || replace(:v_log_archive_dest, :v_db_name, '&3') || replace(replace(replace(replace(:v_log_archive_format,'%S', ltrim(to_char(sequence#, '00000000'))), '%s', ltrim(to_char(sequence#))), '%T', ltrim(to_char(:v_thread, '00000000'))), '%t', ltrim(to_char(:v_thread))) from v$log where archived = 'YES' and sequence# >= :v_log_seq and sequence# < :v_new_log_seq spool clonedb_arch_run.sql / spool off whenever oserror exit 12 whenever sqlerror exit 12 set echo on timing on feedback on spool clonedb_arch_run_&4 @clonedb_arch_run spool off whenever oserror exit 13 whenever sqlerror exit 13 set echo off timing off feedback off exec :v_log_seq := :v_new_log_seq;