<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Support Forums - Recent Topics				            </title>
            <link>https://www.salvis.com/blog/forum/</link>
            <description>Forum</description>
            <language>en-US</language>
            <lastBuildDate>Thu, 09 Apr 2026 10:02:01 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Offset/Fetch giving errors</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/offset-fetch-giving-errors/</link>
                        <pubDate>Tue, 17 Dec 2019 15:29:17 +0000</pubDate>
                        <description><![CDATA[Hello,When using OFFSET/FETCH I am getting following error:4-Blocker: no viable alternative at input &#039;(&#039;This is not supported by PL/SQL Cop ? If no, is there any workaround ?]]></description>
                        <content:encoded><![CDATA[<p>Hello,</p><p>When using OFFSET/FETCH I am getting following error:</p><p>4-Blocker: no viable alternative at input '('</p><p>This is not supported by PL/SQL Cop ? If no, is there any workaround ?</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>icams</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/offset-fetch-giving-errors/</guid>
                    </item>
				                    <item>
                        <title>Code templates corrupt after installation PL/SQL Cop</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/code-templates-corrupt-after-installation-pl-sql-cop/</link>
                        <pubDate>Mon, 16 Dec 2019 16:07:42 +0000</pubDate>
                        <description><![CDATA[Hello,I am encountering following problem: after I perform a check with PL/SQL Cop for SQL Developer I can not use my code templates anymore. When I open Preferences -&gt; Database -&gt; SQL...]]></description>
                        <content:encoded><![CDATA[<p>Hello,</p><p>I am encountering following problem: after I perform a check with PL/SQL Cop for SQL Developer I can not use my code templates anymore. When I open <em>Preferences </em>-&gt; <em>Database -&gt; SQL Editor Code Templates</em> all the code templates are gone.</p><p>When I restart SQL Developer everything is ok again, but when I try to add a new template first the configuration is corrupt.</p><p>Is this a known issue ?</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>icams</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/code-templates-corrupt-after-installation-pl-sql-cop/</guid>
                    </item>
				                    <item>
                        <title>Custom Validator - How to Override Checks and other Questions</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/custom-validator-how-to-override-checks-and-other-questions/</link>
                        <pubDate>Fri, 13 Dec 2019 13:43:22 +0000</pubDate>
                        <description><![CDATA[As descussed herewant to write my own validator based on the TrivadisGuidelines3Plus.xtend.In my case I want to override the G-1050 but I&#039;m really struggling because first of all I don&#039;t kno...]]></description>
                        <content:encoded><![CDATA[<p>As descussed here:</p><p>https://github.com/Trivadis/plsql-and-sql-coding-guidelines/issues/78</p><p>I want to write my own validator based on the <span class="css-truncate css-truncate-target"><a id="29f3b90f95c02a594c0380461b6b9c9d-45e48264eff1702ef5dd195f9d1667d609231a80" class="js-navigation-open" title="TrivadisGuidelines3Plus.xtend" href="https://github.com/Trivadis/cop-validators/blob/master/src/main/java/com/trivadis/tvdcc/validators/TrivadisGuidelines3Plus.xtend">TrivadisGuidelines3Plus.xtend</a>.</span></p><p>In my case I want to override the G-1050 but I'm really struggling because first of all I don't know what the method is called to override. I was guessing "<span style="color: #61afef">checkGuideline1050</span>" because some with other numbers exist. But 1050 doesnt.</p><p>Basically I want something like:</p><div><div style="color: #bbbbbb;background-color: #282c34;font-weight: normal;font-size: 14px;line-height: 19px"><div><span style="color: #bbbbbb">@</span><span style="color: #c678dd">Check</span></div><div><span style="color: #bbbbbb">override </span><span style="color: #61afef">checkGuideline1050</span><span style="color: #abb2bf">(</span><span style="color: #e5c07b">FunctionHeading</span><span style="color: #bbbbbb"> f</span><span style="color: #abb2bf">)</span><span style="color: #bbbbbb">{</span></div><div><span style="color: #bbbbbb">    </span><span style="color: #c678dd">if</span><span style="color: #bbbbbb">(</span><span style="color: #e5c07b">NOT</span><span style="color: #bbbbbb"> </span><span style="color: #e06c75">f</span><span style="color: #bbbbbb">.</span><span style="color: #e06c75">function</span><span style="color: #abb2bf">.</span><span style="color: #61afef">startsWith</span><span style="color: #abb2bf">(</span><span style="color: #98c379">'logger'</span><span style="color: #abb2bf">)</span><span style="color: #bbbbbb">){</span></div><div><span style="color: #bbbbbb">        </span><span style="color: #e06c75">super</span><span style="color: #abb2bf">.</span><span style="color: #61afef">checkGuideline1050</span><span style="color: #abb2bf">(f)</span><span style="color: #bbbbbb">;</span></div><div><span style="color: #bbbbbb">    }</span></div><div><span style="color: #bbbbbb">}</span></div></div></div><div> </div><div>Could you please give me guidance on how to approach this?</div><div> </div><div>My second question is regarding the license. It says no commercial use (and I read the CC details regarding NonC) but it's still unclear for me.</div><div>Does that mean we can't use it in a company or does it just mean to not sell e.g. custom vaidators?</div>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>S-Koell</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/custom-validator-how-to-override-checks-and-other-questions/</guid>
                    </item>
				                    <item>
                        <title>Guidelines 1050 vs 7230</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/guidelines-1050-vs-7230/</link>
                        <pubDate>Thu, 12 Dec 2019 09:45:46 +0000</pubDate>
                        <description><![CDATA[We&#039;re starting a new project and are in the phase where we are defining coding standards and guidelines and check our existing code against those. That&#039;s where we are confused regarding guid...]]></description>
                        <content:encoded><![CDATA[<p>We're starting a new project and are in the phase where we are defining coding standards and guidelines and check our existing code against those. That's where we are confused regarding guidelines G-1050 'Avoid using literals in your code.' and G-7230 'Avoid declaring global variables public.'.</p><p>During the re-write of our code to meet G-1050, we created - as suggested - a package containing all our application-wide constants that will be used as a library.</p><p>But this new package obviously does not meet the G-7230 check, since it exactly doing what the guideline tells not to.</p><p>The G-1050 guideline mentions 'If these constants should be used in SQL too it is good practice to write a deterministic package function for every constant.' ... So we could re-write our library-package with constants so that the constants are private but they are publicly exposed by writing a deterministic get-function for each of them. Doing this, all guidelines are met. But I ask myself what's the added value of hiding a constant value behind a getter-function?</p><p> </p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>tomvdyck</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/guidelines-1050-vs-7230/</guid>
                    </item>
				                    <item>
                        <title>java.lang.NullPointerException in XMLIssuePrinterStrategy.endResource</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/java-lang-nullpointerexception-in-xmlissueprinterstrategy-endresource/</link>
                        <pubDate>Tue, 10 Dec 2019 13:21:45 +0000</pubDate>
                        <description><![CDATA[Tvdcc stops from time to time on the above mentioned error (let&#039;s say once every 10 runs):The reported java line is systematically the same: XMLIssuePrinterStrategy.java:468.Environment:Wind...]]></description>
                        <content:encoded><![CDATA[<p>Tvdcc stops from time to time on the above mentioned error (let's say once every 10 runs):</p><p>The reported java line is systematically the same: XMLIssuePrinterStrategy.java:468.</p><p>Environment:</p><ul><li>Windows 7</li><li>jdk1.8.0_231</li><li>tvdcc-2.3.0</li><li>validators.jar (latest version from Trivadis, not customized)</li></ul><p>Here is an example:</p><blockquote><p>Trivadis PL/SQL Cop Version 2.3.0 (2019-09-28 21:09:46 +0200)<br />for Trivadis PL/SQL &amp; SQL Coding Guidelines Version 3.3<br />Copyright 2010-2019 by Philipp Salvisberg (philipp.salvisberg@trivadis.com)<br />Trivadis AG (www.trivadis.com)</p><p>Trial/Preview version<br />- valid thru: 2020-03-31<br />- valid for versions less than: 3<br />- max. files: unlimited<br />- max. lines: 5000<br />- max. commands: 200<br />- max. bytes: 400000</p><p>Parameters:<br />- path: H:\Projects\dbcc-internal-dev\qc_utility<br />- filter: (pkb|pks)$<br />- timeout: 10<br />- complexity: 0<br />- output: H:\Projects\dbcc-internal-dev\qc_utility\.scannerwork\tvdcc-result.html<br />- template: html.xsl<br />- excel: false<br />- html: false<br />- transonly: false<br />- cleanup: false<br />- check:<br />- skip:<br />- nosonar: true<br />- license:<br />- validator: com.trivadis.tvdcc.validators.TrivadisGuidelines3Plus<br />- genmodel: false</p><p>processing file 'qc_opsys_demand_cfg.pks'... 1 issue found.<br />processing file 'QC_TPL_DEFINES.pks'... 1 issue found.<br />processing file 'QC_UTILITY_KRN.pks'... 112 issues found.<br />processing file 'QC_UTILITY_MSG.pks'... 51 issues found.<br />processing file 'QC_UTILITY_ORA_04068.pks'... 4 issues found.<br />processing file 'QC_UTILITY_STAT.pks'... 47 issues found.<br />47 issues found.<br />0 ERROR CodeChecker - java.lang.NullPointerException<br />java.lang.RuntimeException: java.lang.NullPointerException<br />at com.trivadis.tvdcc.printer.XMLIssuePrinterStrategy.endResource(XMLIssuePrinterStrategy.java:468)<br />at com.trivadis.tvdcc.printer.CompositePrinterStrategy.endResource(CompositePrinterStrategy.java:46)<br />at com.trivadis.tvdcc.process.ProcessResourceTask.stopGracefully(ProcessResourceTask.java:86)<br />at com.trivadis.tvdcc.process.SQLPLUSReader.processSerialResource(SQLPLUSReader.java:283)<br />at com.trivadis.tvdcc.CodeChecker.doCodeCheck(CodeChecker.java:574)<br />at com.trivadis.tvdcc.CodeChecker.mainFunction(CodeChecker.java:605)<br />at com.trivadis.tvdcc.CodeChecker.main(CodeChecker.java:625)<br />Caused by: java.lang.NullPointerException<br />at com.trivadis.tvdcc.printer.XMLIssuePrinterStrategy.endResource(XMLIssuePrinterStrategy.java:275)<br />... 6 more</p></blockquote><p>Note: it's another issue than the performance problem so I've created a separate question.</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>filou97</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/java-lang-nullpointerexception-in-xmlissueprinterstrategy-endresource/</guid>
                    </item>
				                    <item>
                        <title>table validator</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/table-validator/</link>
                        <pubDate>Mon, 09 Dec 2019 13:50:28 +0000</pubDate>
                        <description><![CDATA[We&#039;re in the process of writing some additional validators. Some of them should be triggered by create table and alter table statements ... but we&#039;re struggling to achieve this. We succesful...]]></description>
                        <content:encoded><![CDATA[<p>We're in the process of writing some additional validators. Some of them should be triggered by create table and alter table statements ... but we're struggling to achieve this. We succesfully used the 'CreateView' object before, consequently we tried the CreateTable/AlterTable objects. And although the Eclipse EDI suggests to import 'com.trivadis.oracle.sqlplus.sqlplus.CreateTable' and 'com.trivadis.oracle.sqlplus.sqlplus.AlterTable', and the code compiles just fine, CreateTable and AlterTable are nowhere to be found in the documentation. There seems no way to 'catch' a create table of an alter table statement. We've tried the DataDefinitionStatement, but no luck either. Even a custom check on EObject is not triggered when we're checking a 'create table ... ' statement.</p><p>In the PL/SQL Editor, a create/alter table statement does not seem to be recognized either, since it is marked as erroneous. Neither does the outline window manage to make sense of it.</p><p>So our question is: is it currently possible create a custom validator on a Create or Alter Table statement?<br />And if not: is there some kind of workaround, like maybe a way to access the whole create/alter statement and parse it ourselves for example?</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>tomvdyck</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/table-validator/</guid>
                    </item>
				                    <item>
                        <title>TVDCC extremely slow</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/tvdcc-extremely-slow/</link>
                        <pubDate>Mon, 09 Dec 2019 09:50:15 +0000</pubDate>
                        <description><![CDATA[Hello,Is there a limitation in the trial/preview version of TVDCC that could explain its extreme slowness?It takes up to 20 minutes between each processed file (depending on the number of is...]]></description>
                        <content:encoded><![CDATA[<p>Hello,</p><p>Is there a limitation in the trial/preview version of TVDCC that could explain its extreme slowness?</p><p>It takes up to 20 minutes between each processed file (depending on the number of issues found) to write the "tvdcc-result.xml" (result file passed back to SonarQube).</p><p>Here is the output of my last tentative (1:43 for 10 scanned files + failed on a timeout error) :</p><blockquote><p>H:\Projects\dbcc-internal-dev\qc_utility&gt;sonar-scanner.bat -D"sonar.projectKey=qc_utility" -D"sonar.sources=." -D"sonar.host.url=htt<br />p://localhost:9000" -D"sonar.login=66e14a62c006defcb94e8f7c78e3c21190d12cca"<br />INFO: Scanner configuration file: C:\PGM\sonar-scanner-4.2.0.1873-windows\bin\..\conf\sonar-scanner.properties<br />INFO: Project root configuration file: H:\Projects\dbcc-internal-dev\qc_utility\sonar-project.properties<br />INFO: SonarQube Scanner 4.2.0.1873<br />INFO: Java 11.0.3 AdoptOpenJDK (64-bit)<br />INFO: Windows 7 6.1 amd64<br />INFO: User cache: C:\Users\deboiph\.sonar\cache<br />INFO: SonarQube server 8.0.0<br />INFO: Default locale: "en_US", source code encoding: "windows-1252" (analysis is platform dependent)<br />INFO: Load global settings<br />INFO: Load global settings (done) | time=62ms<br />INFO: Server id: BF41A1F2-AW7pjfLIpqK443FqIDcS<br />INFO: User cache: C:\Users\deboiph\.sonar\cache<br />INFO: Load/download plugins<br />INFO: Load plugins index<br />INFO: Load plugins index (done) | time=47ms<br />INFO: Load/download plugins (done) | time=140ms<br />INFO: Define PlSql Cop PlugIn - Trivadis PL/SQL Cop<br />INFO: Process project properties<br />INFO: Process project properties (done) | time=16ms<br />INFO: Execute project builders<br />INFO: Execute project builders (done) | time=0ms<br />INFO: Project key: qc_utility<br />INFO: Base dir: H:\Projects\dbcc-internal-dev\qc_utility<br />INFO: Working dir: H:\Projects\dbcc-internal-dev\qc_utility\.scannerwork<br />INFO: Load project settings for component key: 'qc_utility'<br />INFO: Load project settings for component key: 'qc_utility' (done) | time=31ms<br />INFO: Load quality profiles<br />INFO: Load quality profiles (done) | time=47ms<br />INFO: Load active rules<br />INFO: Load active rules (done) | time=1154ms<br />INFO: Indexing files...<br />INFO: Project configuration:<br />INFO: 69 files indexed<br />INFO: 0 files ignored because of scm ignore settings<br />INFO: Quality profile for plsqlcop: Trivadis PL/SQL Cop<br />INFO: Quality profile for xml: Sonar way<br />INFO: ------------- Run sensors on module qc_utility<br />INFO: Define PlSql Cop PlugIn - Trivadis PL/SQL Cop<br />INFO: Load metrics repository<br />INFO: Load metrics repository (done) | time=16ms<br />INFO: PlSQL COP Sensor initializing<br />INFO: Sensor JaCoCo XML Report Importer <br />INFO: Sensor JaCoCo XML Report Importer  (done) | time=16ms<br />INFO: Sensor JavaXmlSensor <br />INFO: 1 source files to be analyzed<br />INFO: Load project repositories<br />INFO: Load project repositories (done) | time=15ms<br />INFO: Sensor JavaXmlSensor  (done) | time=234ms<br />INFO: Sensor HTML <br />INFO: 1/1 source files have been analyzed<br />INFO: Sensor HTML  (done) | time=0ms<br />INFO: Sensor XML Sensor <br />INFO: 1 source files to be analyzed<br />INFO: Sensor XML Sensor  (done) | time=327ms<br />INFO: Sensor Process PlSQLCop Report - Mesure and Issues <br />INFO: PlSQL COP Sensor analyzing<br />INFO: 1/1 source files have been analyzed<br />INFO: Executing command: C:/pgm/dev/tvdcc/tvdcc-phd2.cmd path=H:\Projects\dbcc-internal-dev\qc_utility output=H:\Projects\dbcc-inter<br />nal-dev\qc_utility\.scannerwork\tvdcc-result.xml filter="(pkb|pks)$" timeout=10 excel=false html=false genmodel=false complexity=0 c<br />leanup=false check= skip= license= validator=com.trivadis.tvdcc.validators.DBCCGuidelines<br />INFO: CLASSPATH=c:\pgm\dev\tvdcc;c:\pgm\dev\tvdcc\plugin<br />INFO: JAVA_HOME=C:\PGM\jdk1.8.0_231<br />INFO:<br />INFO: Trivadis PL/SQL Cop Version 2.3.0 (2019-09-28 21:09:46 +0200)<br />INFO: for Trivadis PL/SQL &amp; SQL Coding Guidelines Version 3.3<br />INFO: Copyright 2010-2019 by Philipp Salvisberg (philipp.salvisberg@trivadis.com)<br />INFO: Trivadis AG (www.trivadis.com)<br />INFO:<br />INFO: Trial/Preview version<br />INFO: - valid thru: 2020-03-31<br />INFO: - valid for versions less than: 3<br />INFO: - max. files: unlimited<br />INFO: - max. lines: 5000<br />INFO: - max. commands: 200<br />INFO: - max. bytes: 400000<br />INFO:<br />INFO: Parameters:<br />INFO: - path: H:\Projects\dbcc-internal-dev\qc_utility<br />INFO: - filter: (pkb|pks)$<br />INFO: - timeout: 10<br />INFO: - complexity: 0<br />INFO: - output: H:\Projects\dbcc-internal-dev\qc_utility\.scannerwork\tvdcc-result.html<br />INFO: - template: html.xsl<br />INFO: - excel: false<br />INFO: - html: false<br />INFO: - transonly: false<br />INFO: - cleanup: false<br />INFO: - check:<br />INFO: - skip:<br />INFO: - nosonar: true<br />INFO: - license:<br />INFO: - validator: com.trivadis.tvdcc.validators.TrivadisGuidelines3<br />INFO: - genmodel: false<br />INFO:<br />INFO: processing file 'qc_opsys_demand_cfg.pks'... 1 issue found.<br />INFO: processing file 'QC_TPL_DEFINES.pks'... 1 issue found.<br />INFO: processing file 'QC_UTILITY_KRN.pks'... 29 issues found.<br />INFO: processing file 'QC_UTILITY_MSG.pkb'... 452 issues found.<br />INFO: processing file 'QC_UTILITY_MSG.pks'... 22 issues found.<br />INFO: processing file 'QC_UTILITY_ORA_04068.pkb'... 270 issues found.<br />INFO: processing file 'QC_UTILITY_ORA_04068.pks'... 2 issues found.<br />INFO: processing file 'QC_UTILITY_STAT.pkb'... 430 issues found.<br />INFO: processing file 'QC_UTILITY_STAT.pks'... 22 issues found.<br />INFO: processing file 'QC_UTILITY_VAR.pks'... 56 issues found.<br />INFO: 56 issues found.<br />INFO: 2    ERROR CodeChecker        - java.lang.NullPointerException<br />INFO: java.lang.RuntimeException: java.lang.NullPointerException<br />INFO:   at com.trivadis.tvdcc.printer.XMLIssuePrinterStrategy.endResource(XMLIssuePrinterStrategy.java:468)<br />INFO:   at com.trivadis.tvdcc.printer.CompositePrinterStrategy.endResource(CompositePrinterStrategy.java:46)<br />INFO:   at com.trivadis.tvdcc.process.ProcessResourceTask.stopGracefully(ProcessResourceTask.java:86)<br />INFO:   at com.trivadis.tvdcc.process.SQLPLUSReader.processSerialResource(SQLPLUSReader.java:283)<br />INFO:   at com.trivadis.tvdcc.CodeChecker.doCodeCheck(CodeChecker.java:574)<br />INFO:   at com.trivadis.tvdcc.CodeChecker.mainFunction(CodeChecker.java:605)<br />INFO:   at com.trivadis.tvdcc.CodeChecker.main(CodeChecker.java:625)<br />INFO: Caused by: java.lang.NullPointerException<br />INFO:   at com.trivadis.tvdcc.printer.XMLIssuePrinterStrategy.endResource(XMLIssuePrinterStrategy.java:275)<br />INFO:   ... 6 more<br />INFO: ------------------------------------------------------------------------<br />INFO: EXECUTION FAILURE<br />INFO: ------------------------------------------------------------------------<br />INFO: Total time: 1:43:11.847s<br />INFO: Final Memory: 12M/48M<br />INFO: ------------------------------------------------------------------------<br />ERROR: Error during SonarQube Scanner execution<br />org.sonar.api.utils.command.TimeoutException: Timeout exceeded: 600000 ms <br />        at org.sonar.api.utils.command.CommandExecutor.execute(CommandExecutor.java:96)<br />        at org.sonar.api.utils.command.CommandExecutor.execute(CommandExecutor.java:134)<br />        at com.trivadis.sonar7.plugins.plsqlcop.PlSqlCopExecutor.execute(PlSqlCopExecutor.java:69)<br />        at com.trivadis.sonar7.plugins.plsqlcop.PlSqlCopSensor.analyze(PlSqlCopSensor.java:43)<br />        at com.trivadis.sonar7.plugins.plsqlcop.PlSqlCopSensor.execute(PlSqlCopSensor.java:190)<br />        at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)<br />        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)<br />        at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)<br />        at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)<br />        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)<br />        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)<br />        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)<br />        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)<br />        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:387)<br />        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:383)<br />        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:346)<br />        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)<br />        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)<br />        at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)<br />        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)<br />        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)<br />        at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)<br />        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)<br />        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)<br />        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />        at java.base/java.lang.reflect.Method.invoke(Unknown Source)<br />        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)<br />        at com.sun.proxy.$Proxy0.execute(Unknown Source)<br />        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)<br />        at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)<br />        at org.sonarsource.scanner.cli.Main.execute(Main.java:112)<br />        at org.sonarsource.scanner.cli.Main.execute(Main.java:75)<br />        at org.sonarsource.scanner.cli.Main.main(Main.java:61)<br />Caused by: java.util.concurrent.TimeoutException<br />        at java.base/java.util.concurrent.FutureTask.get(Unknown Source)<br />        at org.sonar.api.utils.command.CommandExecutor.execute(CommandExecutor.java:87)<br />        ... 34 more<br />ERROR:<br />ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.</p><p>H:\Projects\dbcc-internal-dev\qc_utility&gt;</p></blockquote><p>Tested versions:<br />- sonarqube-8.0 + sonar-scanner-4.2.0.1873-windows + sonar-plsql-cop-plugin-7.9.0.1 + jdk-11.0.5<br />- tvdcc-2.3.0 + validators.jar + jdk1.8.0_231</p><p>Thanks,<br />Philippe</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>filou97</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/tvdcc-extremely-slow/</guid>
                    </item>
				                    <item>
                        <title>Unexpected recommendations</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/unexpected-recommendations/</link>
                        <pubDate>Thu, 21 Nov 2019 11:25:21 +0000</pubDate>
                        <description><![CDATA[1/ Why is the recommendation &quot;G-4385: Never use a cursor for loop to check whether a cursor returns data.&quot; raised with the following code?DECLARE   CURSOR c_dept IS      SELECT name FROM dep...]]></description>
                        <content:encoded><![CDATA[<p>1/ Why is the recommendation "G-4385: Never use a cursor for loop to check whether a cursor returns data." raised with the following code?</p><blockquote><p>DECLARE<br />   CURSOR c_dept IS<br />      SELECT name FROM dept;<br />BEGIN<br />   &lt;&lt;my_loop&gt;&gt;<br />   FOR r_dept in c_dept LOOP<br />      sys.dbms_output.put_line(dept.name);<br />   END LOOP my_loop;<br />END;</p></blockquote><p>2/ Why is the recommendation "G-9002: Local variable should start with 'l_'." raised with the following code?</p><blockquote><p>DECLARE<br />   c_dept SYS_REFCURSOR;<br />BEGIN<br />   NULL;<br />END;</p></blockquote><p>It seems that SYS_REFCURSOR is not recognised as a cursor.</p><p>3/ Why is the recommendation "G-7240: Avoid using an IN OUT parameter as IN or OUT only." raised with the following code?</p><blockquote><p>CREATE OR REPLACE PROCEDURE test AS<br />   CURSOR c_dept(p_deptno dept.deptno%TYPE) IS<br />      SELECT name FROM dept WHERE depno = p_deptno<br />   ;<br />BEGIN<br />   NULL;<br />END;</p></blockquote><p>Default parameter mode is IN so I don't understand the message. I have the same problem with procedure and function parameters with no explicit mode declared. Note that this recommendation is not raised when the same cursor is put in an anonymous block.</p><p>BTW, I succeeded to create my own validator for the more advanced naming conventions described in my recent "<a href="https://www.salvis.com/blog/forum/other-guidelines/naming-conventions-for-pl-sql/" target="true">Naming conventions for PL/SQL</a>" post.</p><p>Best,<br />Philippe</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>filou97</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/unexpected-recommendations/</guid>
                    </item>
				                    <item>
                        <title>Missing plsql editor in PL/SQL Cop 2.3.0</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/missing-plsql-editor-in-pl-sql-cop-2-3-0/</link>
                        <pubDate>Mon, 18 Nov 2019 15:23:21 +0000</pubDate>
                        <description><![CDATA[The downloaded tvdcc-2.3.0.zip is containing a .zip folder plsqleditor.zip. But the zip file seems to be empty and cannot be opened by Eclipse.]]></description>
                        <content:encoded><![CDATA[<p>The downloaded tvdcc-2.3.0.zip is containing a .zip folder plsqleditor.zip. But the zip file seems to be empty and cannot be opened by Eclipse.</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>icams</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/missing-plsql-editor-in-pl-sql-cop-2-3-0/</guid>
                    </item>
				                    <item>
                        <title>Warning (illegal reflective access) raised when running tvdcc</title>
                        <link>https://www.salvis.com/blog/forum/plsql-cop/warning-illegal-reflective-access-raised-when-running-tvdcc/</link>
                        <pubDate>Fri, 15 Nov 2019 10:57:39 +0000</pubDate>
                        <description><![CDATA[Hello,I get the following warning when running tvdcc:C:\PGM\Dev\tvdcc&gt;tvdcc path=H:\Projects\dbcc-internal-dev\qc_utility\QC_UTILITY_KRN.pkbTrivadis PL/SQL Cop Version 2.3.0 (2019-09-28 2...]]></description>
                        <content:encoded><![CDATA[<p>Hello,</p><p>I get the following warning when running tvdcc:</p><blockquote><p>C:\PGM\Dev\tvdcc&gt;tvdcc path=H:\Projects\dbcc-internal-dev\qc_utility\QC_UTILITY_KRN.pkb</p><p>Trivadis PL/SQL Cop Version 2.3.0 (2019-09-28 21:09:46 +0200)<br />for Trivadis PL/SQL &amp; SQL Coding Guidelines Version 3.3<br />Copyright 2010-2019 by Philipp Salvisberg (philipp.salvisberg@trivadis.com)<br />Trivadis AG (www.trivadis.com)</p><p>Trial/Preview version<br />- valid thru: 2020-03-31<br />- valid for versions less than: 3<br />- max. files: unlimited<br />- max. lines: 5000<br />- max. commands: 200<br />- max. bytes: 400000</p><p><span style="color: #ff0000">WARNING: An illegal reflective access operation has occurred</span><br /><span style="color: #ff0000">WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/C:/PGM/Dev/tvdcc/lib/guice.jar) t</span><br /><span style="color: #ff0000">o method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)</span><br /><span style="color: #ff0000">WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2</span><br /><span style="color: #ff0000">WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations</span><br /><span style="color: #ff0000">WARNING: All illegal access operations will be denied in a future release</span><br />Parameters:<br />- path: H:\Projects\dbcc-internal-dev\qc_utility\QC_UTILITY_KRN.pkb<br />- filter: (sql|prc|fnc|pks|pkb|trg|vw|tps|tpb|tbp|plb|pls|rcv|spc|typ|aqt|aqp|ctx|dbl|tab|dim|snp|con|collt|seq|syn|grt|sp|spb|sps|p<br />ck)$<br />- timeout: 10<br />- complexity: 10<br />- output: ./tvdcc_report.html<br />- template: html.xsl<br />- excel: true<br />- html: true<br />- transonly: false<br />- cleanup: true<br />- check:<br />- skip:<br />- nosonar: true<br />- license:<br />- validator: com.trivadis.tvdcc.validators.TrivadisGuidelines3<br />- genmodel: false</p></blockquote><p>It's not a problem per se, it's more in case it should be addressed by you.</p><p>Rgds,<br />Philippe</p>]]></content:encoded>
						                            <category domain="https://www.salvis.com/blog/forum/"></category>                        <dc:creator>filou97</dc:creator>
                        <guid isPermaLink="true">https://www.salvis.com/blog/forum/plsql-cop/warning-illegal-reflective-access-raised-when-running-tvdcc/</guid>
                    </item>
							        </channel>
        </rss>
		