我使用DBMS_PROFILER来对我的PL/SQL包进行基本分析。我也用它使用下面的查询来获取代码覆盖率的统计数据:使用DBMS Profiler构建PL/SQL覆盖报告
SELECT EXEC.unit_name unitname,ROUND (EXEC.cnt/total.cnt * 100, 1) Code_coverage FROM
(SELECT u.unit_name, COUNT(1) cnt FROM plsql_profiler_data d, plsql_profiler_units u WHERE u.unit_number = d.unit_number GROUP BY u.unit_name) total,
(SELECT u.unit_name, COUNT(1) cnt FROM plsql_profiler_data d, plsql_profiler_units u WHERE u.unit_number = d.unit_number AND d.total_occur > 0 GROUP BY u.unit_name) EXEC
WHERE EXEC.unit_name = total.unit_name
我清除plsql_profiler_data,plsql_profiler_units,plsql_profiler_runs表的每个探查器运行之前,这样我不知道运行ID各一次。
这将为我提供关于分析过程中所涉及的代码百分比的明智信息。现在我试图看看这是否可以构建为一个正常的覆盖报告,我可以知道哪一行代码被覆盖,哪一个不是(说选择lineOfCode,iscovered from ...),以便我可以用html构建报告格式化以指示是否覆盖某行。
我不是太精通Oracle表结构上,其中的功能和程序得到保存等。(接到了一个博客上面的查询,并略作修改,除去运行的ID)
这可能吗?
如果是的话我该如何做到这一点?
看看是否有帮助:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:458240723799 – Slartibartfast