2016-06-11 123 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;