Essential profile
No-brainer, universal agreement.
-
Level 1 Essential No-brainer, universal agreement. 63 rules (+63)
-
Level 2 Balanced Good practice, low controversy. 97 rules (+34)
-
Level 3 Strict Advanced, medium controversy. 171 rules (+74)
-
Level 4 Aggressive Opinionated, high controversy. 205 rules (+34)
-
Level 5 Extreme Merciless, includes everything. 228 rules (+23)
63 rules
-
G-1060 Avoid storing ROWIDs or UROWIDs in database tables.Blocker Reliability
-
G-1080 Avoid using the same expression on both sides of a relational comparison operator or a logical operator.Blocker Maintainability
-
G-1920 Avoid syntax errors.Blocker Maintainability
-
G-2145 Never self-assign a variable.Blocker Maintainability
-
G-2150 Avoid comparisons with NULL value, consider using IS [NOT] NULL.Blocker Reliability
-
G-2190 Avoid using ROWID or UROWID.Blocker Reliability
-
G-2310 Avoid using CHAR data type.Blocker Reliability
-
G-2320 Never use VARCHAR data type.Blocker Maintainability
-
G-2330 Never use zero-length strings to substitute NULL.Blocker Maintainability
-
G-2340 Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored).Blocker Reliability
-
G-3110 Always specify the target columns when coding an insert statement.Blocker Reliability
-
G-3115 Avoid self-assigning a column.Blocker Maintainability
-
G-3120 Always use table aliases when your SQL statement involves more than one source.Blocker Maintainability
-
G-3145 Avoid using SELECT * directly from a table or view.Blocker Reliability
-
G-3160 Avoid visible virtual columns.Blocker Reliability
-
G-3170 Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values.Blocker Reliability
-
G-3182 Always specify column names/aliases instead of positional references in GROUP BY clauses.Blocker Reliability
-
G-3185 Never use ROWNUM at the same query level as ORDER BY.Blocker Reliability
-
G-3190 Avoid using NATURAL JOIN.Blocker Reliability
-
G-3192 Avoid joining tables with the USING clause.Blocker Reliability
-
G-3195 Always use wildcards in a LIKE clause.Blocker Maintainability
-
G-3220 Always process saved exceptions from a FORALL statement.Critical Reliability
-
G-3310 Never commit within a cursor loop.Blocker Reliability
-
G-3330 Avoid autonomous transactions.Blocker Reliability
-
G-4120 Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause.Blocker Reliability
-
G-4130 Always close locally opened cursors.Blocker Reliability
-
G-4140 Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute.Blocker Reliability
-
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.Critical Reliability
-
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.Critical Reliability
-
G-4250 Avoid using identical conditions in different branches of the same IF or CASE statement.Blocker Maintainability
-
G-4350 Always use 1 as lower and COUNT() as upper bound when looping through a dense array.Blocker Reliability
-
G-4387 Never use a FOR LOOP for a query that should return not more than one row.Blocker Reliability
-
G-5020 Never handle unnamed exceptions using the error number.Critical Maintainability
-
G-5030 Never assign predefined exception names to user defined exceptions.Blocker Reliability
-
G-5070 Avoid using Oracle predefined exceptions.Blocker Reliability
-
G-5080 Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM.Critical Maintainability
-
G-7330 Always assign values to OUT parameters.Blocker Maintainability
-
G-7450 Never return a NULL value from a BOOLEAN function.Blocker Maintainability
-
G-7720 Never use multiple UPDATE OF in trigger event clause.Blocker Maintainability
-
G-7810 Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE).Critical Reliability
-
G-7910 Never use DML within a SQL macro.Blocker Reliability
-
G-8120 Never check existence of a row to decide whether to create it or not.Critical Reliability
-
G-9010 Always use a format model in string to date/time conversion functions.Blocker Security
-
G-9040 Try using FX in string to date/time conversion format model to avoid fuzzy conversion.Blocker Reliability
-
G-9501 Never use parameter in string expression of dynamic SQL. Use asserted local variable instead.Blocker Security
-
G-9600 Never define more than one comment with hints.Critical Reliability
-
G-9601 Never use unknown hints.Critical Reliability
-
G-9602 Always use the alias name instead of the table name.Critical Reliability
-
G-9603 Never reference an unknown table/alias.Critical Reliability
-
G-9604 Never use an invalid stats method.Critical Reliability
-
G-9605 Never use an invalid stats keyword.Critical Reliability
-
A-0700 Always enable Session State Protection at the application level.Blocker Security
-
A-0720 Always enable Page Access Protection.Blocker Security
-
A-0770 Never allow application pages within an HTML frame.Blocker Security
-
A-1070 New Always reload pages with editable Interactive Grids only for success.Blocker Reliability
-
A-1100 New Try to keep hidden page items protected.Blocker Security
-
A-1130 Always follow naming conventions for page items.Minor Maintainability
-
A-1410 Never set session lifetime or idle time to 0 (unlimited).Critical Security
-
A-2300 New Never use the HTML (Unsafe) format on Display-Only items.Critical Security
-
A-3060 New Always define a primary key column for editable Interactive Grids.Blocker Reliability
-
A-3080 New Avoid making Interactive Grid columns read-only with CSS only.Blocker Security
-
A-3110 New Always define a primary key item for forms with a DML process.Blocker Reliability
-
A-3130 New Always define a primary key column for master Interactive Grids.Blocker Reliability
63 total