raj*_*esh 10 oracle profiler plsql code-coverage
我使用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
Run Code Online (Sandbox Code Playgroud)
我在每个分析器运行之前清除plsql_profiler_data,plsql_profiler_units,plsql_profiler_runs表,这样我每次都不需要知道运行ID.
这将为我提供有关分析期间所涵盖的代码百分比的Package明智信息.现在我试着看看这是否可以构建为一个正常的覆盖率报告,我可以知道哪一行代码被覆盖,哪一行不是(比如选择lineOfCode,来自...),这样我就可以用html构建一个报告格式化以指示是否覆盖了一条线.
我对Oracle函数和程序保存等方面的表结构并不太精通.(从博客上获得上述查询并略微修改以删除运行ID)
这可能吗?
如果是这样我怎么能实现这个目标?