Skip to Main Content
dbLinter
Sign In
Sign Up
Rules
Rules
Breadcrumb
Search
Reset
Overview
Tenant
Name
Title
Check?
Quick Fix?
Tests?
Severity
Level
Quality Area
Fixing Time
Core
G-1010
Try to label your sub blocks.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-1020
Always have a matching loop or block label.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-1030
Avoid defining variables that are not used.
Yes
Yes
No
Warning
Minor
Maintainability
Local-medium
Core
G-1040
Avoid dead code.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-1050
Avoid using literals in your code.
Yes
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-1060
Avoid storing ROWIDs or UROWIDs in database tables.
Yes
No
No
Error
Blocker
Reliability
Other
Core
G-1070
Avoid nesting comment blocks.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-1080
Avoid using the same expression on both sides of a relational comparison operator or a logical operator.
Yes
Yes
No
Error
Blocker
Maintainability
Local-medium
Core
G-1110
Avoid connect users that own database objects.
No
No
Yes
Error
Blocker
Security
Other
Core
G-1120
Avoid granting system privileges to connect users.
No
No
Yes
Error
Blocker
Security
Other
Core
G-1130
Avoid granting table access to API roles.
No
No
Yes
Warning
Critical
Maintainability
Other
Core
G-1140
Avoid granting object privileges directly to connect users.
No
No
Yes
Warning
Minor
Maintainability
Other
Core
G-1150
Always limit privileges of schema owners according to principle of least privileges.
No
No
Yes
Error
Blocker
Security
Other
Core
G-1210
Never create a table without a primary key.
No
No
Yes
Error
Blocker
Reliability
Other
Core
G-1220
Avoid composite primary keys.
No
No
Yes
Warning
Major
Maintainability
Other
Core
G-1230
Avoid tables without relationships.
No
No
Yes
Warning
Major
Maintainability
Other
Core
G-1240
Try to index foreign key columns.
No
No
Yes
Warning
Major
Reliability
Other
Core
G-1250
Try to define a business key for each table.
No
No
Yes
Warning
Major
Reliability
Other
Core
G-1260
Try to define a comment for each table.
No
No
Yes
Info
Info
Maintainability
Other
Core
G-1270
Try to define a comment for each column.
No
No
Yes
Info
Info
Maintainability
Other
Core
G-1280
Try to use domains instead of raw datatypes for table columns.
No
No
Yes
Warning
Minor
Maintainability
Other
Core
G-1310
Never keep database objects in an invalid state.
No
No
Yes
Error
Blocker
Reliability
Other
Core
G-1910
Avoid using the NOSONAR marker.
Yes
No
No
Info
Info
Maintainability
Other
Core
G-1920
Avoid syntax errors.
Yes
No
No
Error
Blocker
Maintainability
Local-high
Core
G-2110
Try to use anchored declarations for variables, constants and types.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-2120
Try to have a single location to define your types.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-2130
Try to use subtypes for constructs used often in your code.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-2135
Avoid assigning values to local variables that are not used by a subsequent statement.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-2140
Never initialize variables with NULL.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-2145
Never self-assign a variable.
Yes
No
No
Error
Blocker
Maintainability
Local-medium
Core
G-2150
Avoid comparisons with NULL value, consider using IS [NOT] NULL.
Yes
Yes
No
Error
Blocker
Reliability
Local-easy
Core
G-2160
Avoid initializing variables using functions in the declaration section.
No
No
No
Warning
Critical
Reliability
Local-easy
Core
G-2170
Never overload variables.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-2180
Never use quoted identifiers.
No
No
No
Warning
Major
Maintainability
Local-easy
Core
G-2185
Avoid using overly short names for explicitly or implicitly declared identifiers.
No
No
No
Warning
Major
Maintainability
Local-easy
Core
G-2190
Avoid using ROWID or UROWID.
Yes
No
No
Error
Blocker
Reliability
Local-medium
Core
G-2210
Avoid declaring NUMBER variables, constants or subtypes with no precision.
No
No
No
Warning
Critical
Reliability
Local-medium
Core
G-2220
Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values.
No
No
No
Warning
Critical
Reliability
Local-medium
Core
G-2230
Try to use SIMPLE_INTEGER datatype when appropriate.
No
No
No
Warning
Critical
Reliability
Local-medium
Core
G-2310
Avoid using CHAR data type.
Yes
Yes
No
Error
Blocker
Reliability
Local-medium
Core
G-2320
Never use VARCHAR data type.
Yes
Yes
No
Error
Blocker
Maintainability
Local-easy
Core
G-2330
Never use zero-length strings to substitute NULL.
Yes
Yes
No
Error
Blocker
Maintainability
Local-easy
Core
G-2340
Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored).
Yes
Yes
No
Error
Blocker
Reliability
Local-easy
Core
G-2410
Try to use boolean data type for values with dual meaning.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-2510
Avoid using the LONG and LONG RAW data types.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-2610
Never use self-defined weak ref cursor types.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-3110
Always specify the target columns when coding an insert statement.
Yes
No
No
Error
Blocker
Reliability
Local-medium
Core
G-3115
Avoid self-assigning a column.
Yes
No
No
Error
Blocker
Maintainability
Local-medium
Core
G-3120
Always use table aliases when your SQL statement involves more than one source.
Yes
No
No
Error
Blocker
Maintainability
Local-high
Core
G-3130
Try to use ANSI SQL-92 join syntax.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-3140
Try to use anchored records as targets for your cursors.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-3145
Avoid using SELECT * directly from a table or view.
Yes
No
No
Error
Blocker
Reliability
Local-high
Core
G-3150
Try to use identity columns for surrogate keys.
No
No
No
Warning
Critical
Reliability
Other
Core
G-3160
Avoid visible virtual columns.
No
No
Yes
Error
Blocker
Reliability
Other
Core
G-3170
Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values.
Yes
Yes
Yes
Error
Blocker
Reliability
Other
Core
G-3180
Always specify column names instead of positional references in ORDER BY clauses.
No
No
No
Warning
Major
Reliability
Local-easy
Core
G-3182
Always specify column names/aliases instead of positional references in GROUP BY clauses.
No
No
No
Error
Blocker
Reliability
Local-medium
Core
G-3183
Always specify column aliases instead of expressions in GROUP BY clauses.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-3185
Never use ROWNUM at the same query level as ORDER BY.
Yes
No
No
Error
Blocker
Reliability
Local-high
Core
G-3190
Avoid using NATURAL JOIN.
No
No
No
Error
Blocker
Reliability
Local-high
Core
G-3195
Always use wildcards in a LIKE clause.
No
No
No
Error
Blocker
Maintainability
Local-medium
Core
G-3210
Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times.
No
No
No
Warning
Critical
Reliability
Local-high
Core
G-3220
Always process saved exceptions from a FORALL statement.
No
No
No
Warning
Critical
Reliability
Local-high
Core
G-3310
Never commit within a cursor loop.
No
No
No
Error
Blocker
Reliability
Local-medium
Core
G-3320
Try to move transactions within a non-cursor loop into procedures.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-3330
Avoid autonomous transactions.
No
No
No
Error
Blocker
Reliability
Other
Core
G-4110
Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-4120
Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause.
Yes
Yes
No
Error
Blocker
Reliability
Local-medium
Core
G-4130
Always close locally opened cursors.
No
No
No
Error
Blocker
Reliability
Local-medium
Core
G-4140
Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute.
No
No
No
Error
Blocker
Reliability
Local-medium
Core
G-4210
Try to use CASE rather than an IF statement with multiple ELSIF paths.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-4220
Try to use CASE rather than DECODE.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-4230
Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement.
Yes
Yes
No
Warning
Critical
Reliability
Local-easy
Core
G-4240
Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement.
Yes
Yes
No
Warning
Critical
Reliability
Local-medium
Core
G-4250
Avoid using identical conditions in different branches of the same IF or CASE statement.
Yes
No
No
Error
Blocker
Maintainability
Local-medium
Core
G-4260
Avoid inverting boolean conditions with NOT.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-4270
Avoid comparing boolean values to boolean literals.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-4310
Never use GOTO statements in your code.
Yes
No
No
Warning
Major
Maintainability
Local-high
Core
G-4320
Always label your loops.
Yes
Yes
No
Warning
Minor
Maintainability
Local-medium
Core
G-4325
Never reuse labels in inner scope.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-4330
Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-4340
Always use a NUMERIC FOR loop to process a dense array.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-4350
Always use 1 as lower and COUNT() as upper bound when looping through a dense array.
No
No
No
Error
Blocker
Reliability
Local-high
Core
G-4360
Always use a WHILE loop to process a loose array.
No
No
No
Warning
Critical
Reliability
Local-high
Core
G-4365
Never use unconditional CONTINUE or EXIT in a loop.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-4370
Avoid using EXIT to stop loop processing unless you are in a basic loop.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-4375
Always use EXIT WHEN instead of an IF statement to exit from a loop.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-4380
Try to label your EXIT WHEN statements.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-4385
Never use a cursor for loop to check whether a cursor returns data.
No
No
No
Warning
Critical
Maintainability
Local-medium
Core
G-4387
Never use a FOR LOOP for a query that should return not more than one row.
No
No
No
Error
Blocker
Reliability
Local-medium
Core
G-4390
Avoid use of unreferenced FOR loop indexes.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-4395
Avoid hard-coded upper or lower bound values with FOR loops.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-5010
Try to use a error/logging framework for your application.
No
No
No
Warning
Critical
Reliability
Local-medium
Core
G-5020
Never handle unnamed exceptions using the error number.
Yes
No
No
Warning
Critical
Maintainability
Local-medium
Core
G-5030
Never assign predefined exception names to user defined exceptions.
Yes
No
No
Error
Blocker
Reliability
Local-high
Core
G-5040
Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers.
No
No
No
Warning
Critical
Reliability
Local-medium
Core
G-5050
Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-5060
Avoid unhandled exceptions.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-5070
Avoid using Oracle predefined exceptions.
Yes
No
No
Error
Blocker
Reliability
Local-medium
Core
G-5080
Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM.
Yes
Yes
No
Warning
Critical
Maintainability
Local-medium
Core
G-6010
Always use a character variable to execute dynamic SQL.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-6020
Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-7110
Try to use named notation when calling program units.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-7120
Always add the name of the program unit to its end keyword.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-7125
Always use CREATE OR REPLACE instead of CREATE alone.
No
No
No
Warning
Major
Maintainability
Local-easy
Core
G-7130
Always use parameters or pull in definitions rather than referencing external variables in a local program unit.
No
No
No
Warning
Major
Reliability
Local-high
Core
G-7140
Always ensure that locally defined procedures or functions are referenced.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-7150
Try to remove unused parameters.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-7160
Always explicitly state parameter mode.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-7170
Avoid using an IN OUT parameter as IN or OUT only.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-7210
Try to keep your packages small. Include only few procedures and functions that are used in the same context.
No
No
No
Warning
Minor
Reliability
Other
Core
G-7220
Always use forward declaration for private functions and procedures.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-7230
Avoid declaring global variables public.
Yes
Yes
No
Warning
Major
Reliability
Local-high
Core
G-7250
Never use RETURN in package initialization block.
No
No
No
Warning
Major
Reliability
Local-medium
Core
G-7310
Avoid standalone procedures – put your procedures in packages.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-7320
Avoid using RETURN statements in a PROCEDURE.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-7330
Always assign values to OUT parameters.
No
No
No
Error
Blocker
Maintainability
Local-medium
Core
G-7410
Avoid standalone functions – put your functions in packages.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-7420
Always make the RETURN statement the last statement of your function.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-7430
Try to use no more than one RETURN statement within a function.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-7440
Never use OUT parameters to return values from a function.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-7450
Never return a NULL value from a BOOLEAN function.
No
No
No
Error
Blocker
Maintainability
Local-medium
Core
G-7460
Try to define your packaged/standalone function deterministic if appropriate.
Yes
Yes
No
Warning
Major
Reliability
Local-medium
Core
G-7510
Always prefix Oracle supplied packages with owner schema name.
No
No
No
Error
Blocker
Security
Local-easy
Core
G-7520
Avoid using deprecated units in your own code.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-7710
Avoid cascading triggers.
No
No
No
Warning
Major
Maintainability
Local-high
Core
G-7720
Never use multiple UPDATE OF in trigger event clause.
No
No
No
Error
Blocker
Maintainability
Local-medium
Core
G-7730
Avoid multiple DML events per trigger.
No
No
No
Warning
Minor
Reliability
Local-high
Core
G-7740
Never handle multiple DML events per trigger if primary key is assigned in trigger.
No
No
No
Warning
Critical
Reliability
Local-high
Core
G-7810
Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE).
Yes
Yes
No
Warning
Critical
Reliability
Local-easy
Core
G-7910
Never use DML within a SQL macro.
No
No
No
Error
Blocker
Reliability
Local-medium
Core
G-8110
Never use SELECT COUNT(*) if you are only interested in the existence of a row.
Yes
No
No
Warning
Critical
Reliability
Local-high
Core
G-8120
Never check existence of a row to decide whether to create it or not.
No
No
No
Warning
Critical
Reliability
Local-high
Core
G-8210
Always use synonyms when accessing objects of another application schema.
Yes
Yes
No
Warning
Minor
Maintainability
Local-high
Core
G-8310
Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit.
No
No
No
Warning
Minor
Maintainability
Local-medium
Core
G-8410
Always use application locks to ensure a program unit is only running once at a given time.
No
No
No
Error
Blocker
Reliability
Local-high
Core
G-8510
Always use dbms_application_info to track program process transiently.
No
No
No
Warning
Critical
Reliability
Local-medium
Core
G-9010
Always use a format model in string to date/time conversion functions.
Yes
Yes
No
Error
Blocker
Security
Local-medium
Core
G-9020
Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions.
No
No
No
Warning
Critical
Reliability
Local-medium
Core
G-9030
Try to define a default value on conversion errors.
No
No
No
Warning
Major
Maintainability
Local-medium
Core
G-9040
Try using FX in string to date/time conversion format model to avoid fuzzy conversion.
No
No
No
Error
Blocker
Reliability
Local-medium
Core
G-9101
Always follow naming conventions for global variables.
Yes
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9102
Always follow naming conventions for local variables.
Yes
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9103
Always follow naming conventions for cursor variables.
Yes
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9104
Always follow naming conventions for record variables.
Yes
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9105
Always follow naming conventions for collection variables (arrays/tables).
Yes
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9106
Always follow naming conventions for object variables.
Yes
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9107
Always follow naming conventions for cursor parameters.
Yes
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9108
Always follow naming conventions for IN parameters of functions and procedures.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9109
Always follow naming conventions for OUT parameters of functions and procedures.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9110
Always follow naming conventions for IN/OUT parameters of functions and procedures.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9111
Always follow naming conventions for record type definitions.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9112
Always follow naming conventions for collection type definitions (arrays/tables).
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9113
Always follow naming conventions for exceptions.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9114
Always follow naming conventions for constants.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9115
Always follow naming conventions for subtypes.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9116
Always follow naming conventions for record fields.
Yes
No
No
Warning
Minor
Maintainability
Other
Core
G-9201
Always follow naming conventions for tables.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9202
Always follow naming conventions for table/view columns.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9203
Always follow naming conventions for indexes.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-9204
Always follow naming conventions for primary key constraints.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-9205
Always follow naming conventions for unique constraints.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-9206
Always follow naming conventions for foreign key constraints.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-9207
Always follow naming conventions for check constraints.
No
No
No
Warning
Minor
Maintainability
Local-high
Core
G-9208
Always follow naming conventions for assertions.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9209
Always follow naming conventions for global temporary tables.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9210
Always follow naming conventions for views.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9211
Always follow naming conventions for sequences.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9212
Always follow naming conventions for synonyms.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9213
Always follow naming conventions for triggers.
No
No
No
Warning
Minor
Maintainability
Local-easy
Core
G-9214
Always follow naming conventions for PL/SQL packages.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9215
Always follow naming conventions for functions.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9216
Always follow naming conventions for procedures.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9217
Always follow naming conventions for object types.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9218
Always follow naming conventions for object type attributes.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9219
Always follow naming conventions for collection type.
No
No
No
Warning
Minor
Maintainability
Other
Core
G-9501
Never use parameter in string expression of dynamic SQL. Use asserted local variable instead.
Yes
Yes
No
Error
Blocker
Security
Local-medium
Core
G-9600
Never define more than one comment with hints.
Yes
Yes
No
Warning
Critical
Reliability
Local-medium
Core
G-9601
Never use unknown hints.
Yes
Yes
No
Warning
Critical
Reliability
Local-medium
Core
G-9602
Always use the alias name instead of the table name.
Yes
Yes
No
Warning
Critical
Reliability
Local-medium
Core
G-9603
Never reference an unknown table/alias.
Yes
Yes
No
Warning
Critical
Reliability
Local-medium
Core
G-9604
Never use an invalid stats method.
Yes
Yes
No
Warning
Critical
Reliability
Local-medium
Core
G-9605
Never use an invalid stats keyword.
Yes
Yes
No
Warning
Critical
Reliability
Local-medium
row(s) 1 - 183 of 183
Rule View
Previous
Next