2016-06-11 2 views
0

У меня есть процедура plsql, которая использует DBMS_PARALLEL_EXECUTE для создания новой задачи, создания кусков по строке_ид и выполнения этой задачи.Как отлаживать процедуру 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. Выходит. Есть ли способ перейти к процедуре test2 в PLSQL-разработчике.

ответ

0

Думаю, вам понадобится удаленный отладчик, DBMS_DEBUG_JDWP. К сожалению, PL/SQL Developer в настоящее время не поддерживает это, и вам потребуется установить еще один инструмент, например SQL Developer.

0

Я не уверен, действительно ли это разумно (или возможно) сделать такую ​​отладку в процедуре pl-sql, запущенной через DBMS_PARALLEL_EXECUTE при 4 параллельных потоках.

Я бы запустил и отлаживал 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;