2013-12-11 4 views
0

작업을 창에 연결하려고합니다. Connection은 schedule_name을 사용하여 작동해야하지만 작동하지 않는 것 같습니다. 창을 만드는스케쥴러 작업을 창과 연관 시키십시오.

재현 예를

SQL> begin 
    2  DBMS_SCHEDULER.CREATE_WINDOW (
    3  window_name  => 'traffic_window', 
    4  resource_plan => null, 
    5  repeat_interval => 'FREQ=minutely;interval=2', 
    6  duration   => interval '1' minute 
    7  ); 
    8 END; 
    9/

PL/SQL procedure successfully completed. 

SQL> select WINDOW_NAME,SCHEDULE_NAME,SCHEDULE_TYPE,ENABLED,ACTIVE from all_scheduler_windows; 

WINDOW_NAME     SCHEDULE_NAME      SCHEDULE ENABL ACTIV 
------------------------------ ----------------------------------- -------- ----- ----- 
TRAFFIC_WINDOW              CALENDAR TRUE TRUE 

OK 다른 모든 분에게 개방, create_job 명확하게 상태

에 대한 작업

SQL> exec dbms_scheduler.drop_job('test_window_job',true); 

PL/SQL procedure successfully completed. 

SQL> begin 
    2  dbms_scheduler.create_job (
    3  job_name    => 'test_window_job', 
    4  job_type    => 'PLSQL_BLOCK', 
    5  job_action   => 'begin test_func(70,''start'',0,null); end;', 
    6  schedule_name  => 'traffic_window', 
    7  enabled    => false, 
    8  auto_drop   => true 
    9 ); 
10 
11  dbms_scheduler.set_attribute ('test_window_job','max_runs',1); 
12  dbms_scheduler.set_attribute ('test_window_job','stop_on_window_close',true); 
13 end; 
14/

PL/SQL procedure successfully completed. 

SQL> exec dbms_scheduler.enable('test_window_job'); 
BEGIN dbms_scheduler.enable('test_window_job'); END; 

* 
ERROR at line 1: 
ORA-27481: "HAKI.TEST_WINDOW_JOB" has an invalid schedule 
ORA-27476: "HAKI.TRAFFIC_WINDOW" does not exist 
ORA-06512: at "SYS.DBMS_ISCHED", line 2751 
ORA-06512: at "SYS.DBMS_SCHEDULER", line 1794 
ORA-06512: at line 1 

Docs 연관

schedule_name -이 작업과 연관된 일정, 창 또는 창 그룹 그룹의 이름 .

무엇이 문제인가?

BANNER 
---------------------------------------------------------------- 
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod 
PL/SQL Release 10.2.0.3.0 - Production 
CORE 10.2.0.3.0  Production 
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production 
NLSRTL Version 10.2.0.3.0 - Production 

답변

0

당신은 WINDOW을 생성하지만 SCHEDULE과 작업을 연관된다.

WINDOW! = SCHEDULE

SCHEDULE 대신 WINDOW의를 만듭니다.

업데이트 : 실제로는 JOBWINDOW과 연결할 수 있습니다. 창문은 SYS 스키마에 있기 때문에, 당신은 매개 변수에 스키마 이름을 제공해야합니다

schedule_name  => 'sys.traffic_window' 
+0

하지만 난 창을 원하는 - 요점은'stop_on_window_close' 속성을 설정하는 것입니다. 게다가, 창은 일종의 스케쥴입니다. - docs는'schedule_name' attr이 스케쥴러, 창 또는 창 그룹임을 나타냅니다. – haki

+0

문서에는 버그가 있습니다. 스케줄러에서 다른 객체에 대해 동일한 이름을 사용하도록주의하십시오. –

+0

대답을 업데이트했습니다. 매개 변수에'SYS' 스키마 이름 만 입력하면됩니다. –

관련 문제