我正在使用Jenkins和SONARQUBE PL/SQL插件进行Oracle SQL代码分析,我需要使用XPATH创建自定义规则,以便对通过Jenkins进行部署的SQL Script文件进行质量分析.
我正在尝试创建一个自定义规则,检测在任何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';
Run Code Online (Sandbox Code Playgroud)
有一个缺少分号的插入查询,因此sonarqube应该检测到这个并且无法使jenkins构建失败或者无法进行SONAR质量测试.
请帮助创建PLSQL自定义规则,以便通过分号检测正确的SQL终止.
xpath的例子是: / COMPILATION_UNIT/ANY_DML_EXPRESSION/following-sibling :: SEMICOLON - 这样的东西