Rule catalog
Built-in checks for bugs, code smells, conventions, and test code in PL/SQL, Oracle SQL, and supported Oracle Forms workflows. Search by rule ID or title to find the guidance you need.
AddParenthesesInNestedExpressionAdd parentheses in nested expressionRead rule →CharacterDatatypeUsageUse VARCHAR2 instead of CHAR and VARCHARRead rule →CollapsibleIfStatementsCollapsible "if" statements should be mergedRead rule →ColumnsShouldHaveTableNameThe columns in a SELECT should be prefixed with table nameRead rule →CommitRollbackAvoid COMMIT/ROLLBACK calls in database objectsRead rule →ComparisonWithBooleanAvoid superfluous comparation against boolean literalsRead rule →ComparisonWithNullDo not compare values against the NULL literal or an empty stringRead rule →ConcatenationWithNullUnnecessary concatenation with NULL valueRead rule →CursorBodyInPackageSpecDo not declare cursor bodies in a package specificationRead rule →DbmsOutputPutAvoid direct calls to DBMS_OUTPUT proceduresRead rule →DeadCodeDead code should be removedRead rule →DeclareSectionWithoutDeclarationsDo not add the DECLARE keyword if the block doesn't have any declarationRead rule →DisabledTestTests should not be disabledRead rule →DuplicateConditionIfElsifRelated "if/elsif" statements should not have the same conditionRead rule →DuplicatedValueInInDuplicated value in an IN conditionRead rule →EmptyBlockEmpty blocks should be removedRead rule →EmptyStringAssignmentAvoid using empty strings to represent NULLRead rule →ExplicitInParameterParameter mode should be explicitly declaredRead rule →FunctionWithOutParameterAvoid functions with OUT parametersRead rule →IdenticalExpressionIdentical expressions should not be used on both sides of an operatorRead rule →IfWithExitUse EXIT WHEN instead of an IF statement to exit from a loopRead rule →InequalityUsageOnly "<>" should be used to test inequalityRead rule →InsertWithoutColumnsAlways specify the columns in an INSERT statementRead rule →InvalidReferenceToObjectInvalid reference to Oracle Forms objectRead rule →NotASelectedExpressionORDER BY items must appear in the select list if SELECT DISTINCT is specifiedRead rule →NotFoundUse cursor%NOTFOUND instead of NOT cursor%FOUNDRead rule →NvlWithNullParameterDo not pass a NULL literal or an empty string to NVLRead rule →ParsingErrorParser failureRead rule →QueryWithoutExceptionHandlingAvoid queries without an exception handling blockRead rule →RaiseStandardExceptionAvoid raising standard exceptionsRead rule →RedundantExpectationTest expectations should not be redundantRead rule →ReturnOfBooleanExpressionReturn of boolean expressions should not be wrapped into an "if-then-else" statementRead rule →SameBranchBranches in the same conditional structure should not have exactly the same implementationRead rule →SameConditionIdentical conditions should not be duplicatedRead rule →SelectAllColumnsSELECT * should not be usedRead rule →SelectWithRownumAndOrderByA SELECT cannot have a comparison with ROWNUM and an ORDER BY at the same levelRead rule →ToCharInOrderByAvoid TO_CHAR in an ORDER BY clauseRead rule →ToDateWithoutFormatTO_DATE without date formatRead rule →TooManyRowsHandlerAvoid masking the TOO_MANY_ROWS exceptionRead rule →UnhandledUserDefinedExceptionUser defined exceptions should be handledRead rule →UnnecessaryAliasInQueryUnnecessary alias for table referenceRead rule →UnnecessaryElseUnnecessary ELSE clauseRead rule →UnnecessaryLikeDo not use LIKE conditions without wildcardsRead rule →UnnecessaryNullStatementUnnecessary NULL statementRead rule →UnusedCursorUnused cursors should be removedRead rule →UnusedParameterUnused parameters should be removedRead rule →UnusedVariableUnused local variables should be removedRead rule →UselessParenthesisUseless parentheses around expressions should be removed to prevent any misunderstandingRead rule →VariableHidingDo not redeclare variables in inner scopeRead rule →VariableInCountDon't pass variables to COUNT functionRead rule →VariableInitializationWithFunctionCallAvoid initializing variables using functions in the declaration sectionRead rule →VariableInitializationWithNullVariables and RECORD fields do not need to be initialized with NULLRead rule →VariableNameVariables should comply with a naming conventionRead rule →XPathTrack breaches of an XPath ruleRead rule →