У меня есть процедура, которая извлекает данные из EDW в файл для другого пользователя в используемых бизнес-объектах.Добавление к извлеченному файлу
Я использую курсор, чтобы выбрать данные, которые мне нужно, а затем запустить его в цикле следующим образом:
FOR x IN c_body LOOP
utl_file.put_line(out_file, x.data_line);
END LOOP;
utl_file.fclose(out_file);
DBMS_OUTPUT.PUT_LINE('copy file from ' ||lv_path||'/'||lv_filename|| ' to ' ||lv_pub_path||'/'||lv_filename);
OSUTIL.RUNOSCMD('cp -f '||lv_path||'/'||lv_filename||' '||lv_pub_path, lv_os_out, ln_os_num);
IF ln_os_num != 0 THEN
dbms_output.put_line('copy file '||lv_filename||' failed. error = ' || lv_os_out || ' ' || ln_os_num);
RAISE exit_now;
END IF;
Есть ли способ, что я могу запустить процедуру несколько раз и просто добавить к извлеченный файл? В настоящее время я использую массивный экстракт из двухлетних данных истории и скорее буду добавлять несколько раз с меньшими наборами, а не использовать полные 24 месяца (это будет навсегда).
Спасибо за помощь заранее
Вы имеете в виду файл, который вы пишете с помощью 'utl_file', или целевой файл, который вы «копировать это тоже в ОС? –