我们不允许寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,使其能够用事实和引用回答。
Closed 7 years ago.
有没有专门针对使用PL / SQL和T-SQL编写的存储过程的静态代码分析工具?
对于T-SQL,微软拥有VS Team Suite的数据库版(尽管我相信现在已经在dev SKU中)。此链接讲述如何为T-SQL编写自己的静态代码分析规则:http://blogs.msdn.com/gertd/archive/2009/01/01/creating-t-sql-static-code-analysis-rules.aspx。
Oracle 有一些鲜为人知的内置功能。
请在10g Release 2或更高版本中尝试此操作:
ALTER SESSION PLSQL_WARNINGS = ENABLE:ALL ;
然后编译您的PL / SQL包(不是匿名块)。
蟾蜍功能包括CodeXpert实用程序,用于静态检查您的PL/SQL代码。
这个实用程序可以扫描文件或直接连接到Oracle数据库。就我所见,它只能在Windows上运行。
试用免费的Sql Code Guard。它为T-Sql代码提供快速和全面的静态分析,显示代码复杂度和对象依赖关系。
对于 PL/SQL,Toad CodeXpert 可以通过插件与 Sonar(一个开源工具)一起扩展,以管理代码质量。 了解更多。
我想编写一个 T-SQL 插件也是有可能的。
我所知道的最接近的东西是可在SQL Server Management Studio中使用的预估和实际查询计划功能,但我猜其他SQL引擎也有类似的功能。
我们的SD源代码搜索引擎是一种工具,可以高效地交互式搜索许多计算机语言(包括PL/SQL)的大型源代码库,通过将源代码文件按其标记(标识符、数字等)进行预索引。 在预索引步骤的副作用下,它计算每个文件的标准度量:SLOC、Cyclomatic、Halstead等,并生成报告。 请参阅该网站的示例。
我们的SD CloneDR是一种用于分析大型代码库中冗余代码的工具。我们已经将其应用于PL/SQL,并看到大约45%的代码涉及克隆。效果因人而异。CloneDR适用于各种编程语言,可在网站上查看其他语言的克隆检测运行示例。
编辑于2010年10月4日:
我们的源代码搜索引擎旨在实现在混合语言的大型代码中进行非常快速的搜索。 它通过预先索引源代码来实现。 作为索引步骤的副作用,它计算了各种度量标准,包括复杂度的圆形和哈尔斯特德测量。
Just added: not a static analysis tool, but one generally of interest to people interested software quality: our TestCoverage for PLSQL stored procedures.
我不知道有没有。关于PL / SQL,由于Oracle没有暴露太多的PL / SQL编译引擎,因此很难找到工具支持。
The most I ve been able to do is to query the data dictionary to do things like map the package dependencies.
As a followup on the post for T-SQL; VS2010 and VS2008 database development editions come with build-in static analysis rules. These are user extensible, i.e. you can write your own analysis rules in a .net language. The open-source project Neznayka comes with an initial set of 22 rules, and forms a useful base for you to start contributing your own.
Admittedly you have to fork out for Visual Studio and be prepared to develop db code using VS projects, but the recent releases of SSDT as a plug-in for SSMS raises the prospect that Microsoft may, if it has the will-power to do so, allow user-written rules to be distributed to environments that use MS SQL projects for free to develop database code.
The link for Neznayka.
或者搜索网络。