You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 2, 2026. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
-27Lines changed: 0 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,33 +60,6 @@ You find all releases and release information [here](https://github.com/Trivadis
60
60
61
61
4. Optionally copy your commercial license file into the `TVDCC_HOME` directory. For simplicity name the file `tvdcc.lic`.
62
62
63
-
5. Ignoring JDK warnings
64
-
65
-
When using JDK 11 the following warnings are thrown:
66
-
67
-
```
68
-
WARNING: An illegal reflective access operation has occurred
69
-
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/usr/local/bin/tvdcc/lib/guice-3.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
70
-
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
71
-
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
72
-
WARNING: All illegal access operations will be denied in a future release
73
-
```
74
-
75
-
This message is caused by https://github.com/google/guice/issues/1133 . It should be fixed in Guice 5.0.1. In future releases this warning should disappear, when our third party libraries have updated their dependencies. For the time being you have to ignore this warning.
76
-
77
-
When using JDK 16 the following error is thrown:
78
-
79
-
```
80
-
Exception in thread "main" java.lang.ExceptionInInitializerError
81
-
at com.trivadis.tvdcc.CodeChecker.validateFiles(CodeChecker.java:225)
82
-
at com.trivadis.tvdcc.CodeChecker.doCodeCheck(CodeChecker.java:150)
83
-
at com.trivadis.tvdcc.CodeChecker.mainFunction(CodeChecker.java:64)
84
-
at com.trivadis.tvdcc.CodeChecker.main(CodeChecker.java:43)
To fix the issue you have to add the JVM argument `--illegal-access=warn` in the `tvdcc.sh` and `tvdcc.cmd`. This will show a warning as in earlier JDK versions.
89
-
90
63
## Usage
91
64
92
65
If db\* CODECOP is invoked without arguments, the following help screen is shown, after the copyright information:
Copy file name to clipboardExpand all lines: parser-limitations.md
+18-4Lines changed: 18 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,8 @@ If your SQL*Plus script runs successfully against an Oracle database but db\* CO
10
10
11
11
The SQL\*Plus parser is a so-called shallow parser. It covers the bare minimum to identify SQL\*Plus and SQLcl commands, SQL statements and anonymous PL/SQL blocks. It is designed for basic metric calculation and for collaboration with the PL/SQL parser. It is specifically not designed for code validations.
12
12
13
+
This parser needs lines without trailing spaces as input. Otherwise, the metrics regarding the number of commands can be wrong and parse errors can occur when the SQL\*Plus parser passes SQL\*Plus commands to the PL/SQL parser. We could remove trailing spaces before parsing, but this could lead to positional differences in the file or editor when reporting validation issues. Therefore, we strongly recommend that you ensure that your input does not contain trailing spaces, e.g. by configuring your editors accordingly.
14
+
13
15
## PL/SQL Parser
14
16
15
17
The PL/SQL parser treats SQL and PL/SQL as a single language. The goal is to parse the following statements completely for code validation purposes:
@@ -75,11 +77,19 @@ The prompt must not contain unterminated single (`'`) or double quotes (`"`).
75
77
76
78
The use of PL/SQL and SQL keywords as unquoted identifiers are generally not supported, due to the fact, that every single keyword needs to be treated as an exception.
77
79
78
-
Oracle is quite gracious in that area and therefore we strive to support more and more keywords as unquoted identifiers with each release, but the following keywords are causing conflicts in certain parts of the grammar and the use as literals should therefore be avoided:
80
+
Oracle is quite liberal in this area. We try to support existing keywords and keywords introduced in new Oracle database versions as identifiers as long as they do not cause conflicts in our grammar.
81
+
82
+
For example, the following keywords cannot be used unquoted as table alias since the are conflicting with the SQL grammar:
Beginning with version 4.1 function names with non-standard parameters are not supported as unquoted identifiers anymore. Standard parameters follow the notation defined in the [Database PL/SQL Language Reference](https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-subprograms.html#GUID-A5DA8CF5-1BCC-4ABE-9B68-DB593FF1D2CC). Examples are [`add_months`](https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ADD_MONTHS.html#GUID-B8C74443-DF32-4B7C-857F-28D557381543), [`greatest`](https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/GREATEST.html#GUID-06B88B22-8466-44B6-93C7-50B222122ECE) or [`instr`](https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/INSTR.html#GUID-47E3A7C4-ED72-458D-A1FA-25A9AD3BE113).
The following functions use non-standard parameters and therefore cannot be used as unquoted identifiers:
81
89
82
-
Query the dictionary view `v$reserved_words` for a list of keywords. Please note that a parsing error caused by using a keyword as an unquoted identifier is not considered a db\* CODECOP bug, regardless of the keyword categorization by columns such as `reserved`.
You can query the dictionary view `v$reserved_words` for a complete list of keywords. Please note that a parsing error caused by using a keyword as an unquoted identifier is not considered a db\* CODECOP bug, regardless of the keyword categorization by columns such as `reserved`.
83
93
84
94
## Quote Delimiter Characters
85
95
@@ -286,13 +296,17 @@ Please note that the supported statement provides the access parameters as a str
286
296
287
297
Since db\* CODECOP and PL/SQL Analyzer do not include a PL/SQL unwrap utility, the use of wrapped PL/SQL code is not supported.
288
298
299
+
## SQL\*Plus Substitution Variables
300
+
301
+
...
302
+
289
303
## Supported Oracle Versions
290
304
291
305
The PL/SQL and SQL grammars from Oracle version 7.0 until version 21c are supported.
292
306
293
307
The grammar implementation is based on the following documentation:
0 commit comments