我有一个plsql过程,它使用DBMS_PARALLEL_EXECUTE创建一个新任务,通过row_id创建块然后执行任务。
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 :(得分:0)
我认为您需要远程调试器DBMS_DEBUG_JDWP
。不幸的是,PL / SQL Developer目前不支持此功能,您需要安装其他工具,例如SQL Developer。
答案 1 :(得分: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;