부탁하는 방식으로 - 아니요. 연결을 끊으면 oracle이 세션을 종료합니다 (또는 적어도 죽이려고합니다). 그러나 직업을 창출 할 수 있습니다. Job은 oracle 인스턴스가 관리하는 객체입니다. 그것은 실행하는 데 사용되는 일정이 있습니다. 한 번만 start_date
, repeat_interval
및 end_date
널 떠나 프로 시저를 실행하려면
begin
dbms_scheduler.create_job(
job_name => 'My job',
job_type => 'STORED_PROCEDURE',
job_action => 'YOUR_SCHEMA.YOUR_PACKAGE.YOUR_PROCEDURE',
start_date => 'desired date to start',
repeat_interval => 'FREQ=DAILY;INTERVAL=1', /* every day */
end_date => 'desired date to stop',
comments => 'I will run it from python');
end;
: 간단한 예를 한 번 저장 프로 시저를 실행하는 작업을 만들
begin
dbms_scheduler.create_job(
job_name => 'My job',
job_type => 'STORED_PROCEDURE',
job_action => 'YOUR_SCHEMA.YOUR_PACKAGE.YOUR_PROCEDURE',
comments => 'I will run it from python');
end;
오라클 스케줄러는 매우 복잡하고 강력한 도구. 매개 변수, 익명 블록, 복잡한 스케줄 작성 등으로 프로 시저를 실행할 수 있습니다. 자세한 내용은 Scheduler, DBMS_SCHEDULER 설명서를 참조하십시오.
답장을 보내 주셔서 감사합니다. @Dmitry. 그러나 파이썬 코드에 값을 반환하려면 저장 프로 시저가 필요했습니다. 나는이 경우에 가능하지 않다고 가정하고 있습니까? –
@SakshamArora 직접 - 아니요. 그러나 리턴 값을 테이블에 저장할 수 있습니다. 스크립트를 실행하고 식별자를 전달한 다음 (다른 프로 시저 실행을 식별해야하는 경우) 프로 시저를 실행합니다. 프로 시저에 식별자를 사용하여 결과를 저장하는 코드를 추가 한 다음 선택을하십시오. – Dmitry