Preferred way for PLSQL analysis initiated by Jenkins

Hi!

What is the preferred way to execute PLSQL analysis by Jenkins 2 pipeline?
I have a git repository downloaded by Jenkins with PSQL codes. What should be the next step to initiate the SQ analysis.
Thanks

I think you’ll find the SonarQube Scanner for Jenkins documentation interesting.

Thanks! At PLSQL analysis I got this Exception! What should I do to solve this isse?

INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 40.101s
INFO: Final Memory: 51M/1554M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
java.lang.NullPointerException
at com.sonar.oracle.C.B.HA.Á(Unknown Source)
at com.sonar.oracle.C.B.HA.B(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.Q.A(Unknown Source)
at com.sonar.oracle.S.A(Unknown Source)
at com.sonar.oracle.S.A(Unknown Source)
at com.sonar.plsql.plugin.J.execute(Unknown Source)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:386)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:382)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:351)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
ERROR:

The Execution Failure likely occurs after some specific file is indicated in the logs – is that correct? Can you share the content of that file?

This is the same stacktrace as reported in another thread.
It’s due to a NOT IN query where the subquery has redundant parentheses, for example:

SELECT c1 FROM t1
WHERE c1 NOT IN ((SELECT c2 FROM t2));

We have an open ticket about it and we should definitely fix it.

In the meantime, you can either:

  • remove the redundant parentheses in your code
  • or disable the rule S3641 in your quality profile
  • or exclude the file from your analysis using sonar.exclusions