2
주어진 날짜에 데이터베이스 개체를 삭제하는 작업을 생성하려고합니다. 작업은 괜찮아졌지만 절차는 실행되지 않습니다. 절차 만 실행하면 작동합니다.DBMS_SCHEDULER.CREATE_JOB 프로 시저로 프로 시저를 실행하는 방법
여기에 작업 v_delhrs 숫자입니다
v_jobnam := v_objnam;
v_jobnam := DBMS_SCHEDULER.generate_job_name (v_jobnam);
v_startdate := to_timestamp(v_startdate);
select sysdate + (v_delhrs/1440)
into v_startdate
from dual;
DBMS_SCHEDULER.CREATE_JOB(job_name => v_jobnam, job_type => 'PLSQL_BLOCK', JOB_ACTION => 'BEGIN DROP_OBJ1(' || v_objnam|| ', ' || v_objtyp || ', '|| v_schema || ',' || v_objid ||'); END;', start_date => SYSTIMESTAMP, repeat_interval => 'freq=secondly; bysecond=0', end_date => NULL, enabled => TRUE, comments => 'Calls PLSQL once');
을 생성하는 코드입니다.
PROCEDURE DROP_OBJ1
(
p_objnam IN CHAR,
p_objtyp IN CHAR,
p_copyto IN ALL_OBJECTS.OWNER%TYPE,
p_objid IN NUMBER
)
IS
v_objnam VARCHAR2 (30);
v_objtyp VARCHAR2 (30);
v_copyto VARCHAR2 (30);
v_objid NUMBER (3);
BEGIN
v_objnam := UPPER (p_objnam);
v_objtyp := UPPER (p_objtyp);
v_copyto := UPPER (p_copyto);
v_objid := p_objid;
--v_copyby := UPPER (p_copyby);
EXECUTE IMMEDIATE (' DROP '
|| v_objtyp
|| ' '
|| v_copyto
|| '.'
|| v_objnam
);
EXECUTE IMMEDIATE (' DELETE FROM COPY_OBJ_DET WHERE OBJ_ID = '
|| v_objid
);
COMMIT;
END;
나는 그것의 아주 사소한 문제를 알고 다음은 프로 시저에 대한 코드입니다. 사전에 고마워, .
건배!
많은 감사합니다. 사이에, 실제로 항해 보트에서 살고 있습니까? 감사합니다. 내 하루를 보냈습니다. 건배! – Tunde
예 - 2 년 전에 소프트웨어 회사를 매각했습니다. 우리는 동쪽 비용과 바하마를 위아래로왔다. 나는 50 피트 범선에 아름다운 아내와 2 명의 멋진 아이들과 살고 있습니다. –
user_scheduler_jobs 뷰 (또는 all_scheduler_jobs)를보고 작업 데이터가 예상 한 것과 같은지 확인할 수 있습니다 –