Liquibase Enterprise was formerly known as Datical DB.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »


If you need assistance with rules, please contact our Technical Support team.

Access

All the rules below are available on https://software.datical.com .  Browse to Common/Datical_DB_Rules.

Rules

DatabaseCategoryRuleRule TypeObject TypeFilenameDescription
OraclePerformanceAddColumnsShouldNotUseDefaultValueForecastColumnAddColumnsShouldNotUseDefaultValue.drlAlter table add column statements should not include a default value specification.
Columns added to existing tables should not have defaultValue set
MSSQLStructureNew Constraint is non-nullable on column type CHARForecastTable-Column-ConstraintColumn_Constraint_CHAR_CannotBeNonNullable.drlRestricts the user from creating a non-nullable column with CHAR datatype
MSSQLStructureNew Column is type image, varBinaryForecastTable-ColumnColumn_DoNotUse_Image_varBinary.drlWarning when column type is IMAGE or VARBINARY
MSSQLStructureNew Column is in type (NCHAR, NVARCHAR, NTEXT)ForecastTable-ColumnColumn_DoNotUse_NCHAR_NVARCHAR_NTEXT.drlWarn when column type is NTex, NChar or NVarchar
MSSQLStructureNew Column is type TEXTForecastTable-ColumnColumn_DoNotUse_TextType.drlWarn when column type is Text
MSSQLNaming ConventionNew or Renamed Column is in keyword listForecastTable-ColumnColumn_Keyword_List.drlNew or Renamed Column is in keyword list
MSSQLStructureNew Column is type VARCHAR(MAX)ForecastTable-ColumnColumn_VARCHAR_MAX.drlrule which warns the user to consider VARCHAR(8000) or less instead of VARCHAR(MAX) as a column data type
MSSQLNaming ConventionNew or Renamed Column has special characters (excluding underscore) in nameForecastTable-ColumnColumnName_NoSpecialCharacters.drlColumn name should not contain special characters
MSSQLNaming ConventionNew Table Column Constraint is named by systemForecastTable-ColumnColumnName_NoSystemGeneration.drlThis rule checks if the name of the column while creating the table was generated by the system.
When the column name is generated by the system, it starts with "COLUMN". So this rule disallows
the name of the column to start with "COLUMN" string.
MSSQLStructureNew Column is type NTEXTForecastTable-ColumnColumns_DoNotUse_NTextType.drlWarn when column type is NText
OracleStandards - CorporateDoNotAllowDropTablesForecastTable

DoNotAllowDropTables.drl

Fails if any undeployed changeset attempts to drop a table.

OracleStandards - CorporateDrop Column  WarningForecastTable-COlumn

DropColumnWarning.drl

Warn if column is being dropped

OracleStandards - CorporateDrop Table WarningForecastTable

DropTableWarning.drl

Warn if table is being dropped

AllStructure

ErrorWhenCreatingDuplicateIndex

ForecastIndexDuplicateIndexError-MSSQL.drlError if creating an index, where an index already exists with the same columns, in any order.
PostgresStructure

ErrorWhenCreatingDuplicateIndex-Postgres

ForecastIndexDuplicateIndexError-Postgres.drl

Error if creating an index, where an index already exists with the same columns, in any order. Postgres-specific version required

MSSQLNaming ConventionNew Function is not prefixed with ?fn_ ForecastFunctionFunction_Format_Prefix_Xfn_.drlerror if funtion is not prefixed by Xfn (X can be any letter)
MSSQLNaming ConventionNew Function is not prefixed with ufn_ForecastFunctionFunction_Format_Prefix_ufn_.drlerror if funtion is not prefixed by ufn 
MSSQLStorage OptionsNew or Modified Index without ALLOW_PAGE_LOCKS !=ONForecastIndexIndex_Allow_Page_Locks_ON.drlWarn if "Allow Page locks" is not on for index
MSSQLStorage OptionsNew or Modified Index with ALLOW_ROW_LOCKS != ONForecastIndexIndex_Allow_Row_Locks_ON.drlWarn if "Allow Row locks" is not on for index
MSSQLStructureNew Index is CLUSTERED and is not Primary KeyForecastTable-IndexIndex_ClusteredAndPK.drlWarn if the index is clustered but not a primary key
MSSQLStorage OptionsNew or Modified Index with DATA_COMPRESSION != PAGEForecastIndexIndex_DATA_COMPRESSION_PAGE.drlWarn when an index is created with DATA_COMPRESSION NOT PAGE
MSSQLStorage OptionsNew or Modified Index with IGNORE_DUP_KEY != OFFForecastIndexIndex_Ignore_Dup_Key_OFF.drlWarn when "Ignore Duplicate Key" if not OFF for an index
MSSQLStorage OptionsNew or Modified Index has more than 16 columnsForecastIndexIndex_Maximum_16_Columns.drlError when index contains more than 16 columns
MSSQLStorage OptionsNew or Modified Index with PAD_INDEX != OFFForecastIndexIndex_Pad_Index_OFF.drlWarn if Pad Index is not OFF on an index
MSSQLStorage OptionsNew or Modified Index with STATISTICS_NORECOMPUTE != OFFForecastIndexIndex_Statistics_NoRecompute_OFF.drlWarn if "Statistics Recompute" is not ON on an index
MSSQLNaming ConventionNew Index is not in format: <prefix>_<tablename>@<col1>$<col2>$<col3>$<col4>$<col5>,
"New Index is not in format: <prefix>_<tablename>@<col1>$<col2>$<col3>#<col12>#<col13>
(where col12, col13 are included columns; col1, col2 and col3 are columns on which index is defined)",
"New Index is not in format: <prefix>_<tablename>@<col1>$<col2>$<col3>#includes
(when there are more than 5 included columns)",
New Index is not in format: <prefix>_<tablename>@<C#>$<C#>$<C#>$<C#>$<C#>#Includes
ForecastIndexIndexNamingFormat.drlWarn when New Index is not in the format <prefix>_<table-name>@<c1>>_
Oracle/MSSQLNaming ConventionAll new date columns should end _DATE.ForecastTable-ColumnOracle_Column_Date_Naming_Convention.drlError if column of type date do not end with _date
Oracle/MSSQLNaming ConventionAll new columns ending with _FLAG or _FLG should be of type CHAR(1)ForecastTable-ColumnOracle_Column_Flag_Char1.drlError if column names ending in _FLAG or _FLG are not of type char(1)
Oracle/MSSQLNaming ConventionAll new Primary key constraints should start with PK_, All new Unique keys should start with UK_, All new Foreign keys should start with FK_, All new check constraints should start with CK_ForecastTable-Column-ConstraintOracle_Constraint_Keys_Naming_Convention.drlError if naming Convention for constraints (Primary keys, Unique keys, check constraints, foreign keys) are not followed.
OracleDatatypeDeprecated LONG and LONG RAW datatypes should no longer be usedForecastDatatypeOracle_LongAndLongRaw.drlError if  t deprecated  'LONG' and 'LONG RAW' datatypes are used.
Oracle/MSSQLNaming ConventionAll new sequences should end with _SEQForecastSequenceOracle_Sequence_Naming_Convention.drlError if sequences do not end by _SEQ.
MSSQLNaming ConventionNew Primary Key is not in format: PK_<table_name>_IDForecastTable-PKPK_Format.drlError if Primary Key does not follow proper naming convention.
MSSQLStructureNew Primary Key is not CLUSTEREDForecastTable-PKPK_NotClustered.drlError when a primary key is not clustered.
MSSQLNaming ConventionNew Stored Procedure is not prefixed with  ?sp_ ForecastStoredProcStoredProcedure_Format_Prefix_Xsp_.drlError when stored procedure name does not start by Xsp_
MSSQLNaming ConventionNew Stored Procedure is not prefixed with sp_ForecastStoredProcStoredProcedure_Format_Prefix_sp_.drlError when stored procedure name does not start by sp_
MSSQLNaming ConventionNew or Renamed Table Column Constraint is CHECK and not in format: CK_<tablename>@<column>ForecastTable-Column-ConstraintTable_Column_Constraint_CHECK_Format.drlError table column constraing is CHECK but name is not CK_tablename@column
MSSQLNaming ConventionNew or Renamed Table FK Contraint is not in format: FK_<tablename>_<column>@<ftablename>_<column>ForecastTable-FKTable_FKConstraint_Format.drlError if Table FK Constraint is not in format: FK_<tablename>_<column>@<ftablename>_<column>
MSSQLNaming ConventionNew Table FK Constraint is named by systemForecastTable-FKTable_FKConstraint_NamedBySystem.drlWarning if Table FK Constraint is named by system
MSSQLNaming ConventionNew or Renamed Table has special characters (excluding underscore) in nameForecastTableTableName_NoSpecialCharacters.drlError if table name contains special character.
MSSQLNaming ConventionNew or Renamed Table name can only contain alphanumeric (and underscore) chracters.ForecastTableTableNamesMustOnlyContainAlphaNumericAndUnderscore.drlError if table name contains non alphanumeric and underscore.
ALLNaming ConventionTable names cannot have special characters and must start with T_ForecastTableTableNamingStandards.drlError if table naems don't follow standard (no special characters and must start with T_)
MSSQLNaming ConventionNew or Renamed Trigger is not in format: trg_<tablename>_<type>
The type should be designated as 'I' = insert, 'U' = update, 'D' = delete.
ForecastTableTriggerTrigger_Format.drlError if trigger name does not follow the standard trg_<tablename>_<type>
MSSQLNaming ConventionTrigger should not contain special charcter and should start with TR_ForecastTableTriggerTriggerNamingStandards.drlError if trigger name contains special character and does not start by TR_
MSSQLNaming ConventionNew or Renamed View is not prefixed with vw_ForecastViewViewName_Format_Prefix_VW_.drlError if view name does not start by VW_
MSSQLNaming ConventionNew or Renamed View has special characters (excluding underscore) in nameForecastVIewViewName_NoSpecialCharacters.drlError if view name contains special character
AllStandards - Corporate

Check if the context of any changeset is part of a specific list.

PreForecastDatical ChangesetContextMustBeSetAndValid.drlError if context is not set properly.
AllStandards - Corporate

Check if the label of any changeset follows the VersionOne card id.

PreForecastDatical ChangesetVersionOneLabelMustBeSetAndValid.drlError if label is not set properly.
OracleStandards - CorporateCheck if there is a grant to a role that is restricted. ForecastGrantNoGrantWithoutCustomRolesRules.drlError if a grant tries to give access to a role that is on a list of restricted roles. 
OracleCommentsComments should not be nestedSqlRulecommentsNo_Nested_Comments.drlThrows ERROR when a nested C type comment is present in sql script.
PL/SQL does not support nested C-style (/* ... *//*) comments.
OracleCommentsSingle line comments should start with "--"SqlRulesingle line commentSingleLine_Comments.drlThrows WARNING when a sql script contains single line comments but not uses -- to declare the comment
The multi-line comment syntax (/* ...* /) should not be used for single line comments; the -- syntax is more appropriate.
OracleConstraintVariables should be nullableSqlRuleNot NullVariable_InitializedWith_NULL.drlThrows warning when SQL script contains variables initialized with NULL
Explicit variable initializations with null values are superfluous, since unassigned variables are implicitly initialized to null.
OracleDataType"MLSLABEL" should not be usedSqlRuleMLSLABELMLSLABEL_SHouldNotBeUsed.drlTthrows ERROR when a sql script contains MLSLABEL
The deprecated MLSLABEL datatype is still supported only for backwards compatibility with Trusted Oracle, and since Oracle8, the only valid value it can hold is NULL. 
Thus, the usage of this type should be progressively removed.
OracleDataType"NUMBER" variables should be declared with precisionSqlRuleNUMBER

OracleDataTypeScale should not be specified for float typesSqlRuleFloatScale_NoDefined_forFloat.drlThrows ERROR when a Float variable is defined with a scale in sql script.
Float data types, such as FLOAT, DOUBLE PRECISION, and REAL cannot have a scale constraint. 
Trying to specify a scale results in the exception PLS-00510: Float cannot have scale being raised.
OracleDatatype"PLS_INTEGER" should not be usedSqlRuleSIMPLE_INTEGER

OracleDatatype"VARCHAR" should NOT be usedSqlRuleVARCHAR2

OracleDatatype"CHAR" and "NVARCHAR" should NOT be usedSqlRuleVARCHAR2, NVARCHAR2

OracleDataTypes"NCHAR" and "NVARCHAR2" size should not be specified in bytesSqlRuleNCHAR

OracleDatatypes"ROWID" and "UROWID" data types should not be usedSqlRuleRowid and Urowid

OracleDBMS_OUTPUT"DBMS_OUTPUT.PUT_LINE" should not be usedSqlRuleDBMS_OUTPUT.PUT_LINE

OracleFunctionsThe 'result_cache' hint should be avoidedSqlRuleResult_Cache

OracleJoins"FULL OUTER JOINS" should be used with cautionSqlRuleOuter Joins

OracleJoinsSQL tables should be joined with the "JOIN" keywordSqlRuleJoin

OracleJoins"NATURAL JOIN" queries should not be usedSqlRuleNatural Join

OracleLoops"EXIT WHEN" should be used rather than "IF ... THEN EXIT; END IF;"SqlRuleExit

OracleLoops"FORALL" should be used instead of "FOR"SqlRuleFor Loop

OracleLoops"IF" statement conditions should not evaluate unconditionally to "TRUE" or to "FALSE"SqlRuleIf Loop

MSSQLNaming ConventionNew Index is not Primary Key and is CLUSTERED and is NOT UNIQUE and is not prefixed with CIDX_PostForecastIndex

MSSQLNaming ConventionNew Index is not Primary Key and is CLUSTERED and is UNIQUE and is not prefixed with UCIDX_PostForecastIndex

MSSQL

Naming ConventionNew Index is not Primary Key and is NON-CLUSTERED and is NOT UNIQUE and is not prefixed with IDX_PostForecastIndex

MSSQLNaming ConventionNew Index is not Primary Key and is NON-CLUSTERED and is UNIQUE and is not prefixed with UIDX_PostForecastIndex

MSSQLNaming ConventionNew or Renamed Table Column Constraint is DEFAULT VALUE and not in format: DF_<tablename>@<column>PostForecastTable-Column-Constraint

OracleNaming ConventionColumn aliases should be defined using "AS"SqlRuleColumn Alias

OracleNaming ConventionConstant names should comply with a naming conventionSqlRuleConstant Name

OracleNaming ConventionCursor parameters should follow a naming conventionSqlRuleCursor Parameters

OracleNaming ConventionCursors should follow a naming conventionSqlRuleCursors

OracleNaming ConventionExceptions should follow a naming conventionSqlRuleExceptions

OracleNaming Convention"GOTO" statements should not be usedSqlRuleGOTO

OracleNaming ConventionPackage names should comply with a naming conventionSqlRulePackages

OracleNaming ConventionRecord fields should comply with a naming conventionSqlRuleRecord Variables

OracleNaming ConventionTypes should follow a naming conventionSqlRuleTypes

OracleNaming ConventionVariables should comply with a naming conventionSqlRuleVariables

OracleOperatorsOracle's join operator (+) should not be usedSqlRuleJoin Operator

OracleNaming ConventionPackage names should comply with a naming conventionSqlRulePackages

OracleNaming ConventionRecord fields should comply with a naming conventionSqlRuleRecord Variables

OracleNaming ConventionTypes should follow a naming conventionSqlRuleTypes

OracleNaming ConventionVariables should comply with a naming conventionSqlRuleVariables

OracleOperatorsOracle's join operator (+) should not be usedSqlRuleJoin Operator

Oracle/MSSQLStructureAll New Tables should have a primary key or Unique keyPostForecastTableTable_NoPrimaryOrUniqueKey.drlAll New Tables should have a primary key or Unique key.
MSSQLStructureNew Table does not have a CLUSTERED IndexPostForecastTableTable_NoClusteredIndex.drlChecks that if the tables contain at least one clustered index
OracleStructure"CASE" should be used rather than "DECODE"SqlRuleCase

OracleStructureCASE should be used for sequences of simple testsSqlRuleCase

OracleStructureConstant declarations should contain initialization assignmentsSqlRuleConstants

OracleStructure"CREATE OR REPLACE" should be used instead of "CREATE"SqlRuleCreate or Replace

OracleStructure"EXIT" should not be used in loopsSqlRuleEXIT statement

MSSQLStructureNew or Modified Function contains "SELECT *"SqlRuleFunctionOracle_Select_Star.drl
OracleStructure"GROUP BY" should not be used in SQL "SELECT" statementsSqlRuleGroup By

OracleStructure"cursor%NOTFOUND" should be used instead of "NOT cursor%FOUND"SqlRuleCursor

OracleStructureAnchored types should not be constrainedSqlRuleAnchored Type

OracleStructure"COMMIT" should not be used inside a loopSqlRuleCommit

OracleStructure"DELETE" and "UPDATE" statements should contain "WHERE" clausesSqlRuleDELETE-UPDATE

OracleStructure"FORALL" statements should use the "SAVE EXCEPTIONS" clauseSqlRuleFORALL

OracleStructure"FUNCTIONS" should not have "OUT" parametersSqlRuleFunction

OracleStructure"FETCH ... BULK COLLECT INTO" should not be used without a "LIMIT" clauseSqlRuleFETCH-BULK

OracleStructure"GOTO" should not be used within loopsSqlRuleLoop

OracleStructurePipelined functions should have at least one "PIPE ROW" statement and not return an expression (PLS-00633)SqlRuleFunction

OracleStructureProcedures should not contain "RETURN" statementsSqlRuleProcedure

OracleStructure"RAISE_APPLICATION_ERROR" should only be used with error codes from -20,000 to -20,999SqlRuleRAISE_APPLICATION_ERROR

OracleStructureSQL EXISTS subqueries should not be usedSqlRuleSelect

OracleStructureColumns to be read with a "SELECT" statement should be clearly definedSqlRuleSelect

OracleStructureQueries should not "SELECT" too many columnsSqlRuleSelect

OracleStructure"UNION" should not be used in "SELECT" statementsSqlRuleUnions

OracleStructureDML events clauses should not include multiple "OF" clausesSqlRuleTrigger

OracleStructureThe "RELIES_ON" clause should not be usedSqlRuleRelies_On

OracleStructure"END LOOP" should be followed by a semicolonSqlRuleLOOP

MSSQLStructureNew or Modified Stored Procedure contains "SELECT *"SqlRuleStoredProc

OracleTableA primary key should be specified during table creationSqlRuleTable-PK

OracleTrackingTrack uses of NOSONAR commentsSqlRuleNOSONAR

OracleVariableVariables should not be initialized with "NULL"SqlRuleInitialized with NULL

OracleVariables"NOT NULL" variables should be initializedSqlRuleNOT NULL Variables

OracleVariablesSize should be specified for string variablesSqlRuleSize

All
Do Not Allow Grant or Revoke ErrorSqlRuleGrant/Revoke

Oracle
GOTO should not be used to jump backwardsSqlRuleGOTO

Oracle
"LOOP ... END LOOP;" constructs should be avoidedSqlRuleLOOP

OracleFunctionsFormatted Date Conversion CheckSqlRuleDate FormatSqlRules_Oracle_formattedDateRequired.drlCalls to TO_DATE / TO_TIMESTAMP / TO_TIMESTAMP_TZ functions must provide non-null date format as second argument. Error if relying on default date format.
OracleStructureDB Link CheckSqlRuleLinkSqlRules_Oracle_restrictDbLinks.drlRestrict the use of database links. Error if a non-whitelisted link reference was found in a script.







Additional Rules

Database
Rule Group
Rule Name
Rule Type
Object Type
Filename
Description
OracleStandards - Naming

ErrorWhenTableNameGreaterThan20OrAuditTableNameGreaterThan26

ForecastTable
Error of if table name is greater than 20 characters, or if table name ends in _AUDIT and is greater than 26 characters
OracleStructure

ErrorWhenOwningSchemaNotPrefixedInCreateTable

SqlRulesTableErrorWhenOwningSchemaNotPrefixedInCreateTable.drlError if owning schema is not prefixed in the create table statement
OracleStandards - Naming

ErrorWhenTableColumnNameGreaterThan26CharactersLong

ForecastColumn
Error if column name length is greater than 26
OracleStandards - NamingErrorIfNonAuditTableColumNamedSeqNoOrSeqIDForecastColumn
Error if colum name = SEQ_NO or SEQ_ID
OracleStandards - DatatypeCreateTableShouldWarnIfDatatypeNotInListForecastColumn - Datatype

Error if If datatype is not in list: CLOB, BLOB, NUMBER, LONG or RAW

OracleStandards - DatatypeWarnOnDatatypeLongRawCharForecastColumn - Datatype
Warn if datatype is LONG, RAW or CHAR
OracleStandards - Naming

ErrorWhenIndexNameGreaterThan30CharactersLong

ForecastIndex
Warn if index name exceeds 30 characters
OracleStandards - NamingPrimaryKeyShouldEndWith_PKForecastIndex - Primary Key

Fail if primary key index name is not suffixed with _PK. For example, MY_TABLE_PK – Indicates Primary Key Index

OracleStandards - NamingNonPrimaryKeyIndexNameValidationForecastIndex - Primary Key

Fails if non primary key index names are not suffixed with _00 (denoting index number), or _00N (indicates index which is non_unique, or _00U (indicates index index which is unique)

OracleStandards - NamingIndexTablespaceShouldBeNamed_schemaname_indxForecastIndex
For indexes make sure that the tablespace name is "<schema>_indx"
OracleStandards - Naming

ErrorWhenForeignKeyNameGreaterThan30CharactersLong

ForecastConstraint - Foreign Key
Fail if foreign key name exceeds 30 characters
OracleStandards - Naming

ForeignKeyConstraintNameShouldNotStartWithSYS_

ForecastConstraint - Foreign Key
Check for Oracle generated FK constraint names. Do not allow Oracle to generate default foreign key names
OracleStandards - NamingForeignKeyShouldEndWIth_FKnForecastConstraint - Foreign Key

Error if Foreign Key name does not end in FKn. Constraints are always suffixed with a ‘_FKn’ (where ‘n’ is the constraint number)

OracleStandards - Naming

ErrorWhenViewNameGreaterThan30CharactersLong

ForecastView
Warn if view name exceeds 30 characters
OracleStandards - Naming

ErrorWhenViewNameGreaterThan25CharactersLong

ForecastView
Warn if view name exceeds 25 characters
OracleStandards - NamingViewNameShouldEndWith_VForecastView
Warn if view name is not suffixed with _V
OracleStructureViewShouldNotReferenceAnotherViewForecastView
Warn if view does not reference base table (must not reference another view)
OracleStandards - Naming

ErrorWhenSynonymNameGreaterThan30CharactersLong

ForecastSynonym
Warn if synonym name exceeds 30 characters
OracleStandards - Naming

ErrorWhenTriggerNameGreaterThan30CharactersLong

ForecastTrigger
Warn if trigger name exceeds 30 characters
OracleStandards - NamingTriggerNameShouldEndWith_TRGForecastTrigger
Warn if trigger name is not suffixed with _TRG
OracleStandards - NamingAuditTriggerShouldContainOwnedbyTablenameForecastTrigger

Audit Triggers must contain the name of the table they are owned by

OracleStandards - Naming

ErrorWhenPackageNameGreaterThan30CharactersLong

ForecastPackage
Warn if package name exceeds 30 characters
OracleStandards - Naming

PackagePackageBodyNameShouldBeginWithPKG_

ForecastPackage
Error if package or package body name is not prefixed with PKG_
OracleStandards - Naming

ErrorWhenPackageBodyNameGreaterThan30CharactersLong

ForecastPackage
Warn if package body name exceeds 30 characters
OracleStandards - Naming

StoredProcedureNameShouldBeginWithPRC_

ForecastProcedure
Warn if stored procedure name is not prefixed with PRC_
OracleStandards - Naming

ErrorWhenStoredProcedureNameGreaterThan30CharactersLong

ForecastProcedure
Error if stored procedure name exceeds 30 characters
OracleStandards - Naming

ErrorWhenFunctionNameGreaterThan30CharactersLong

ForecastFunction
Error if function name exceeds 30 characters
OracleStandards - NamingFunctionNameShouldBeginWithFN_ForecastFunction
Warn if function name is not prefixed with FN_
OraclePerformanceCreateTableColumnShouldNotUseDefaultValueForecastColumn
Create table statements should not include a default value specification
OraclePerformanceCreateIndexShouldContainParallelOptionSqlRulesIndex
Error when parallel attribute is missing from create index statement
OraclePerformanceCreateTableMissingTablespaceSpecificationSqlRulesTable
Create table statements must include a tablespace specification
AllSecurity

ErrorWhenSqlContainsGrantExceptForServiceID

SqlRulesGrant
Error if sql contains "GRANT*" except for "GRANT [dsas]"
AllSecurity

ErrorWhenSqlContainsCreateRole

SqlRulesRole
Error if sql contains "CREATE ROLE"
MSSQLSecurity

ErrorWhenSqlContainsChangeDbOwner-MSSQL

SqlRulesDatabase
Error if generated SQL changes DB Owner
OracleStructureTriggerShouldNotReturnData_No_SELECTForecastTrigger
Error if Trigger contains SELECT statement. Returning data to client is not allowed.
OracleStandards - DatatypeColumnNameEndingIn-_FLG-ShouldBeTypeVarchar1ForecastColumn

Fails if any undeployed changeset attempts to create a table with a column name ending in “_FLG” that does not have data type of VARCHAR(1).

OracleStandards - DatatypeDATATYPE-WarnWhenColumnCreatedWithVARCHAR2_4000ForecastColumn
Fails if any undeployed changeset creates a table with a column of data type VARCHAR2(4000).
OracleStandards - DatatypeDATATYPE-ErrorWhenColumnCreatedWithCHARForecastColumn
Fails if any undeployed changeset creates a table with or adds a column of data type CHAR.
OracleStandards - DatatypeDATATYPE-WarnWhenColumnCreatedWithCLOBForecastColumn
Warns if any undeployed changeset creates a table with a column of data type CLOB.
OracleStandards - CorporateErrorWhenCommentMissingFromColumnForecastColumn
Fails if any undeployed changeset creates a table with a column that is not commented
OracleStandards - CorporateErrorWhenCommentMissingFromTableForecastTable
Fails if any undeployed changeset creates a table is not commented
OracleStandards - CorporateErrorWhenCommentMissingFromViewForecastView
Fails if any undeployed changeset creates a view that is not commented
OraclePerformanceErrorWhenIndexHasGreaterThan3ColumnsForecastIndex

OraclePerformance
ForecastForeign KeyFKColumnsShouldHaveIndex.drlFails if any undeployed changeset creates a foreign key where the base table column does not contain an index.
OracleStandards - NamingErrorWhenTableNameGreaterThan20OrAuditTableNameGreaterThan26CharactersLongForecastTable

OracleStandards - NamingErrorWhenTableNameGreaterThan25CharactersLongForecastTable
Fails if any undeployed changeset creates a table with a name greater than 25 characters
OracleStandards - NamingForeignKeyNameShouldNotStartWithSYS_ForecastForeign Key

AllStandards - CorporateGRANTNotAllowedInProductionForecastGrant
Fails if any undeployed changeset on the PROD context generates SQL containing a GRANT statement.
AllStandards - CorporateNewSequencesNeedSpecificStartNumberForecastSequence
Fails if any undeployed changeset on the A context creates a sequence that starts at 0 or an odd number. Also fails if any undeployed changeset on the B context creates a sequence that starts at 0 or an even number.  Fails if any undeployed changeset creates a sequence that does not increment by 2.
OracleStandards - CorporateNoLOBIndicesInOracleForecastIndex
Fails if any undeployed changeset creates an index on a column with a LOB data type.

Standards - CorporateNoLoggingOnIndicesForecastIndex

OracleStandards - CorporateNoRenameViewAltSchemaInOracleForecastView

Fails if any undeployed changeset renames a view in an alternate schema.

AllStandards - CorporateOnlyCertainUsersCanAlterStoredProceduresForecastStored Procedure
Fails if any Datical user other than users stated in the rule attempts to run a Forecast where undeployed changesets alter stored procedures.
AllStandards - CorporateOnlyCertainUsersCanLoadDataForecastDML
Fails if any Datical user other than users stated in the rule attempts to run a Forecast where undeployed changesets insert or update data.
AllStandards - CorporatePrivateSynonymsNotAllowedInProductionForecastSynonym
Fails if any undeployed changeset on the PROD context creates a private synonym.
AllStandards - CorporateTruncateNotAllowedInStoredProcedureForecastStored Procedure
Fails if any undeployed changeset creates a stored procedure that contains a TRUNCATE command.
AllDaticalWarnOnRemarksForColumnInAddColumnForecastColumn
Warn if using Datical remarks attribute for a non-mySQL database.
AllStandards - CorporateMoreThanThreeWarningsIsAnErrorPostForecast

Fails if Forecast produced more than 3 warnings.
AllStandards - CorporateDisallowGrantsSqlRulesGrant
Error if the GRANT keyword is found in a SQL Script.
AllStandards - CorporateDisallowTryCatchBlocksSqlRulesCode
Error if the TRY/CATCH keywords are found in a SQL Script.
AllStandards - Corporate

ChangeSetCommentsMustExistAndNotBeEmpty

PreForecastDatical Changeset
Change Set Comments Must Exist and Not Be Empty
AllStandards - CorporateChangeSetIDsMustStartWithSpecificStringPreForecastDatical Changeset
Change Sets ID must start with JIRA-
AllStandards - CorporateErrorWhenChangesetCannotBeRolledbackPreForecastRollback
Error when changeset is missing a manual or auto rollback
Oracle
GeneratedSQLLinesLessThan2499PreForecastSqlPlus
Generated SQL: Individual SQL line(s) exceeds 2499 characters and cannot be executed in SQLPLUS
MSSQLStandards - CorporateGeneratedSQLShouldNotChangedb_ownerPreForecastdb_owner
Error is generated SQL attempts to change the db_owner
OracleStandards - CorporateGeneratedSQLShouldNotContainAlterSessionPreForecastAlter Session
Error if generated SQL contains an ALTER SESSION command
AllStandards - CorporateGeneratedSQLShouldNotContainDROPsPreForecastDrop
Error if generated SQL contains a DROP statement
AllStandards - CorporateGeneratedSQLShouldNotContainGRANTSsPreForecastGrant
Error if generated SQL contains a GRANT statement
OracleStandards - CorporateGeneratedSQLShouldNotContainSPOOLPreForecastSpool
Error if generated SQL contains a SPOOL statement
AllDaticalPrintTheClientSystemInfoModelPreForecastDatical Models
Print the Client System Information model
AllDaticalPrintTheDatabaseDefModelPreForecastDatical Models
Print the Database Definition model
AllStandards - CorporateCreateTableShouldInformForecastTable

Prints informational message in Forecast report if any undeployed changeset creates a table.

AllStandards - CorporateCreateTableShouldWarnForecastTable

Warns if any undeployed changeset creates a table. Useful to remind DBAs to setup replication.

AllStandards - CorporateDropColumnShouldUseRollbackForecastColumn

Fails if any undeployed changeset that drops a column does not provide a corresponding rollback script.

AllStandards - Corporate

TableMustContain-CREATED_DATE-And-CREATED_BY-Columns

ForecastTable
When Creating Tables, fail if 'CREATED_DATE' or 'CREATED_BY' columns are not found
AllStandards - NamingTriggerNamesMustStartWith-_TR-AndNotUseSpecialCharactersForecastTrigger
Trigger names must start with 'TR_' and cannot use special characters '*#+<space>-'.

Generic Rules

Database
Rule Group
Rule Name
Rule Type
Object Type
Filename
Description
AllGeneral

RuleWhichMakesRestCall

ForecastTableRuleWhichMakesRestCall.drlGeneric rule that make REST calls as part of the rule logic.
AllGeneralRuleWhichHitsDatabaseForecastTriggerRuleWhichHitsDatabase.drlGeneric rule that can make database queries as part of the rule logic.
  • No labels