2016-06-11 33 views
0

我有一個plsql過程,它使用DBMS_PARALLEL_EXECUTE創建新任務,按row_id創建塊並執行任務。如何調試由PLSQL開發人員中的並行任務執行的PLSQL過程

procedure test as 
begin 
     DBMS_PARALLEL_EXECUTE.create_task('newtask'); 
     DBMS_PARALLEL_EXECUTE.create_chunks_by_rowid('newtask','PEEUSH','NEWTABLE',TRUE,1000); 
     DBMS_PARALLEL_EXECUTE.run_task(task_name  => 'newtask', 
            sql_stmt  => 'begin PEEUSH.test2(:start_id,:end_id); end;', 
            language_flag => DBMS_SQL.NATIVE, 
            parallel_level => 4); 

end; 

現在我想從PLSQL開發調試這一點,但只要執行到達run_task。它出來了。 PLSQL開發人員有沒有辦法進入test2過程?

回答

0

我想你需要遠程調試器,DBMS_DEBUG_JDWP。不幸的是PL/SQL Developer目前不支持這個,你需要安裝另一個工具,比如SQL Developer

0

我不確定在4個並行線程上通過DBMS_PARALLEL_EXECUTE運行的pl-sql過程中執行此類調試是否真的合理(或可能)。

我會在一小組數據上分別運行和調試begin PEEUSH.test2(:start_id,:end_id); end;以檢查任何運行時異常。

但是,可能需要的是查看TASK是否成功運行。

-- To monitor task 
select * from USER_PARALLEL_EXECUTE_TASKS; 

-- To monitor chunks 
select * from USER_PARALLEL_EXECUTE_CHUNKS;