【问题标题】:How to debug PLSQL procedure being executed by a parallel task in PLSQL developer如何在 PLSQL 开发人员中调试由并行任务执行的 PLSQL 过程
【发布时间】:2016-10-22 23:37:34
【问题描述】:

我有一个 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 过程。

【问题讨论】:

    标签: plsql oracle11g plsqldeveloper


    【解决方案1】:

    我认为您需要远程调试器DBMS_DEBUG_JDWP。不幸的是,PL/SQL Developer 目前不支持此功能,您需要安装另一个支持此功能的工具,例如 SQL Developer

    【讨论】:

      【解决方案2】:

      我不确定在通过 DBMS_PARALLEL_EXECUTE 在 4 个并行线程上运行的 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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-30
        • 2019-03-15
        相关资源
        最近更新 更多