2016-08-22 3 views
-2

내가 현재 사용하고동일한 절차를 Oracle에서 동시에 실행 하시겠습니까? 예를 들어,</p> <pre><code>BEGIN PACKAGE1.PROCEDURE1('PARAM_1','PARAM_A','PARAM_B'); END; </code></pre> <p>내가 동일한 절차를 여러 번 (오라클)를 실행해야하지만, 이번에는 첫 번째 매개 변수를 변경 :

PACKAGE1.PROCEDURE1('PARAM_2','PARAM_A','PARAM_B'); 
PACKAGE1.PROCEDURE1('PARAM_3','PARAM_A','PARAM_B'); 

어떻게 할 수 난 이러한 목표를 달성? 미리 감사드립니다.

+2

익명 블록에 세 번의 전화를 걸었습니까? 또는 첫 번째 매개 변수 값이 데이터베이스 어딘가에서 오는 경우 프로 시저를 호출하는 루프를 작성하십시오. –

+0

간단한 예를 들어 주시겠습니까? – James

+0

어떤 접근 방식입니까? 예를 들어 요구 사항을 이해해야하지만 아직하지는 않습니다. 첫 번째 매개 변수의 값이 데이터베이스의 어딘가에서 왔기 때문에이 매개 변수를 반복 할 수 있습니까? 당신이 정말로 이러한 병렬로 실행하려는 않는다 - 당신의 제목은 "동시에"라고? 그들이 생성 한 스레드가 무엇이든 모니터링 할 수 있도록 빌드 되었습니까? 또는 실제로 데이터베이스에 하나의 요청을하고 여러 번 순차적으로 프로 시저를 실행하기를 원한다는 의미입니까? –

답변

0

익명 plsql 블록에서 반복 횟수로 루프를 작성하는 것은 얼마나 많은 매개 변수를 사용 하느냐에 따라 프로 시저를 호출하려고합니다. 루프의 맨 위에 매개 변수를 설정하는 로직을 넣고 그 다음에 프로 시저를 호출하십시오. 그러나 프로그램 실행 중에는 콘솔이나 사용자로부터 데이터를 읽는 옵션이 plsql에 없다는 것을 기억하십시오. 는 // 나는 당신은 내가 당신은 문자열로

execute_immidiate

명령을 사용하여 시도 할 수는 PLSQL에서 수행 할 수있다 확실하지 않다, 루프마다 타 변수 전달에 대해 질문 할 수 있다고 생각 매개 변수 이름으로 conncatenate하십시오.

0

당신 패키지 프로 시저에서 매개 변수를해야하고 내가 주인이이에 값을 공급하는 일을 처리해야하므로 첫 번째 매개 변수에 가정합니다.

프로 시저가 예상대로 작동합니다. 유입되는 외부 스트림은 외부 소스 나 다른 전달 메커니즘에서 가져와야합니다.

이 패키지 절차에 맞추기 만하면이 절차에 따라 원하는만큼이 절차를 호출 할 수 있습니다.

0

동일한 절차를 동시에 실행하려면 작업으로 제출할 수 있습니다.

BEGIN 

begin 
    dbms_scheduler.create_job 
    ( 
     job_name  => 'One_Time_Job_1', 
     job_type  => 'PLSQL_BLOCK', 
     job_action => 'begin PACKAGE1.PROCEDURE1('PARAM_2','PARAM_A','PARAM_B'); end;', 
     start_date => sysdate, 
     enabled  => TRUE, 
     auto_drop  => TRUE, 
     comments  => 'one-time job'); 
    end; 


begin 
    dbms_scheduler.create_job 
    ( 
     job_name  => 'One_Time_Job_2', 
     job_type  => 'PLSQL_BLOCK', 
     job_action => 'begin PACKAGE1.PROCEDURE1('PARAM_3','PARAM_A','PARAM_B'); end;', 
     start_date => sysdate, 
     enabled  => TRUE, 
     auto_drop  => TRUE, 
     comments  => 'one-time job'); 
    end; 

END; 

자세한 내용은 DBMS_SCHEDULER을 참조하십시오.

0

고정 된 수의 병렬 프로 시저를 사용하여 진행중인 생산 프로세스의 경우이 경우 스케줄러 체인을 사용하는 것이 좋습니다.

이 같은 시간에 모든 절차를 실행하고 당신에게 다음과 같은 추가 기능을 제공합니다 : 하나 또는 모두가

  • 제어를 완료하면

    1. 다른 프로 시저를 실행하는 기능을하는 이상 절차는 성공 또는 실패 절차에 따라 나중에 실행됩니다.