我正在使用 Jenkins 和 SONARQUBE PL/SQL 插件进行 Oracle SQL 代码分析,我需要使用XPATH创建自定义规则,以便对发送以通过 Jenkins 进行部署的 SQL 脚本文件进行质量分析。
我正在尝试创建一个自定义规则,用于检测是否在任何 SQL 命令的末尾缺少分号 (" ; ")。SQL 终止(“分号”)对于使用 SQLPLUS 部署 SQL 脚本很重要。
代码示例
insert into table_name values('wait','for','completion'); -- compliant with script
insert into table_name values('somename','for','good'); -- compliant with script
**insert into table_name values('someplace','for','game')** -- non compliant as semicolon missing
insert into table_name values('something','for','change'); -- compliant with script
delete from table_name ; -- compliant with script
delete from table_name ; -- compliant with script
update table_name set name='james' where id='22';
有一个插入查询缺少分号,因此 sonarqube 应该检测到这一点,并且 jenkins 构建失败或 SONAR 质量测试失败。
请帮助创建 PLSQL 自定义规则,以通过分号检测正确的 SQL 终止。
xpath 的示例是: /COMPILATION_UNIT/ANY_DML_EXPRESSION/following-sibling::SEMICOLON——类似这样