明日の 04:15 から 2 時間ごとにスケジュールされたジョブを起動したいと思います。ジョブは毎日、2 時間ごとに起動する必要があります。次のようなもの: 04:15、06:15、08:15....
手順は、リモート マシンでのファイルの作成に関するものです。手順をテストすると、問題なく動作し、リモートの場所にファイルが作成されます。ただし、dbms_jobs パッケージのジョブとしては失敗します。何が間違っているのかわかりません。手順のコードは次のとおりです。
CREATE OR REPLACE PROCEDURE ARC_HRVR.VR_AD_INTEGRATION_EXPORT AS
v_file UTL_FILE.file_type;
BEGIN
v_file := UTL_FILE.fopen('DIR_VR_AD_INTEGRATION', 'HRMtoAD1_'||to_char(sysdate,'YYYYMMDD')||'_'||to_char(sysdate,'HH24MISS'), 'w', 32767);
FOR x IN (
SELECT * FROM (SELECT
decode(pid, NULL, RPAD(' ',7,' '), RPAD(user_id, 7, ' '))|| '' ||
decode(o365, NULL, RPAD(' ',80,' '), RPAD(o365, 80, ' '))
str FROM table WHERE integrated = 'N') str WHERE rownum <= 1000 ORDER BY rownum)
´LOOP
BEGIN
UTL_FILE.put_line(v_file, x.str);
END;
END LOOP;
UTL_FILE.fflush(v_file);
UTL_FILE.fclose(v_file);
END VR_AD_INTEGRATION_EXPORT;
そして、ここにジョブを起動するためのコードがあります:
DECLARE
l_id binary_integer;
begin
dbms_job.submit(job => l_id, what => 'ARC_HRVR.vr_ad_integration_export();', interval => 'TRUNC(SYSDATE)+1+4.25/24', );
dbms_output.put_line(l_id);
end;
少しのガイダンスと微調整でコードが修正されます:-) よろしくお願いします