Skip to main content

Informixのスキャンルール

 

Contrast Scanでは、Informixに対して以下のルールをサポートしています。

深刻度

Contrastルール

エンジンルールID

説明

重大

Avoid Correlated Sub Selects

OPT.INFORMIX.AvoidCorrelatedSubSelects 

AvoidCorrelatedSubSelects:外側のSELECT文で定義した列を使用するネストしたSELECT文の回避

重大

Cursor For Update Where Current

OPT.INFORMIX.CursorForUpdateWhereCurrent 

CursorForUpdateWhereCurrent:カーソルがFOR UPDATEで宣言されている場合のDELETEおよびUPDATEにおける、WHERE CURRENT句の使用

重大

Detect Unaware Cross Joins

OPT.INFORMIX.DetectUnawareCrossJoins 

DetectUnawareCrossJoins:クエリにおける「意図しない」デカルト積の発生の回避

重大

Dont Select Known Fields

OPT.INFORMIX.DontSelectKnownFields 

DontSelectKnownFields:SELECTクエリにおけるWHERE句で使用するフィールド取得の禁止

重大

Fetch And Declare Same Fields

OPT.INFORMIX.FetchAndDeclareSameFields 

FetchAndDeclareSameFields:カーソルフィールド数の一致(DECLARE CURSOR文で指定した取得するフィールド数はFETCH文で指定したフィールド数と一致している必要あり)

Avoid Declared Unopened Cursors

OPT.INFORMIX.AvoidDeclaredUnopenedCursors 

AvoidDeclaredUnopenedCursors:カーソルを宣言した場合のオープン(OPEN文でカーソルを開く必要あり)

Avoid Numeric References In By Clauses

OPT.INFORMIX.AvoidNumericReferencesInByClauses 

AvoidNumericReferencesInByClauses:* BY句における数値インデックスによる列参照の禁止

Avoid Opened Unclosed Cursors

OPT.INFORMIX.AvoidOpenedUnclosedCursors 

AvoidOpenedUnclosedCursors:カーソルをオープンした場合のクローズ(CLOSE文でカーソルを閉じる必要あり)

Avoid Opened Unused Cursors

OPT.INFORMIX.AvoidOpenedUnusedCursors 

AvoidOpenedUnusedCursors:カーソルをオープンした場合の使用(カーソルを使用してデータを取得する必要あり)

Avoid Union

OPT.INFORMIX.AvoidUnion 

AvoidUnion:UNIONによる選択の回避

No Current Clause

OPT.INFORMIX.NoCurrentClause 

NoCurrentClause:CURRENT句を含むSQLクエリの使用制限(負荷が大きいため、必要な場合にのみ使用する必要あり)

Unused Local Var

OPT.INFORMIX.UnusedLocalVar 

VLSU:未使用のローカル変数の回避

Unused Parameter

OPT.INFORMIX.UnusedParameter 

UnusedParameter:未使用の関数またはプロシージャのパラメータの回避

Use The As Keyword

OPT.INFORMIX.UseTheAsKeyword 

UseTheAsKeyword:テーブルのエイリアス設定時におけるASキーワードの使用

情報

Avoid Concat Operator

OPT.INFORMIX.AvoidConcatOperator 

AvoidConcatOperator:連結演算子の使用の回避

情報

Avoid Non Declared Cursor

OPT.INFORMIX.AvoidNonDeclaredCursor 

AvoidNonDeclaredCursor:事前に宣言されていないカーソルの使用

Avoid Goto Statement 

OPT.INFORMIX.AvoidGotoStatement 

AvoidGotoStatement:GOTO文の使用回避

Avoid Host Operations

OPT.INFORMIX.AvoidHostOperations 

AvoidHostOperations:WHERE句における算術演算の実行の回避

Avoid Insert Without Fields Specification

OPT.INFORMIX.AvoidInsertWithoutFieldsSpecification 

AvoidInsertWithoutFieldsSpecification:すべてのINSERT文におけるフィールドの指定の必要性(例:INSERT INTO table(column1,column2) VALUES (value1,value2))

Avoid Scroll Cursors 

OPT.INFORMIX.AvoidScrollCursors 

AvoidScrollCursors:可能な限りスクロールカーソルの回避

Avoid Update Asterisk 

OPT.INFORMIX.AvoidUpdateAsterisk 

AvoidUpdateAsterisk:対象にアスタリスクを使用した UPDATEの回避

Avoid Whenever

OPT.INFORMIX.AvoidWhenever 

AvoidWhenever:WHENEVER句の使用禁止

Check Simple Condition

OPT.INFORMIX.CheckSimpleCondition 

CheckSimpleCondition:WHERE句の条件の簡略化

Dead Code

OPT.INFORMIX.DeadCode 

DeadCode:到達不可能なコードのチェックと削除

Do Not Use Negation In Where

OPT.INFORMIX.DoNotUseNegationInWhere 

DoNotUseNegationInWhere:否定演算子の使用禁止

Else In Case Statement 

OPT.INFORMIX.ElseInCaseStatement 

ElseInCaseStatement:CASE文にELSE句を含める

Insert Cursor In Loop 

OPT.INFORMIX.InsertCursorInLoop 

InsertCursorInLoop:ループ内でINSERTカーソルを使用

Nested If Statements

OPT.INFORMIX.NestedIfStatements 

NestedIfStatements:IF文の深すぎるネストの回避

One SQL Statement Per Line

OPT.INFORMIX.OneSQLStatementPerLine 

OneSQLStatementPerLine:1行に1つのSQL文のみを書き込み

Too Many Cases In Case 

OPT.INFORMIX.TooManyCasesInCase 

TooManyCasesInCase:CASE文に多すぎるWHEN句の回避

Too Many Lines In Function 

OPT.INFORMIX.TooManyLinesInFunction 

TooManyLinesInFunction:行数が多すぎる関数や手続きの回避

Use Let Instead Of Initialize 

OPT.INFORMIX.UseLetInsteadOfInitialize 

UseLetInsteadOfInitialize:INITIALIZEの代わりにLETの使用

Avoid Natural Joins

OPT.INFORMIX.AvoidNaturalJoins 

AvoidNaturalJoins:NATURAL JOINの回避(バグが発生しやすくメンテナンス困難なため)

Avoid Nested Selects

OPT.INFORMIX.AvoidNestedSelects 

AvoidNestedSelects:ネストしたSELECT文の回避

Avoid Queries On Many Tables

OPT.INFORMIX.AvoidQueriesOnManyTables 

AvoidQueriesOnManyTables:多くのテーブルを参照するJOINクエリの回避

Avoid Select Asterisk

OPT.INFORMIX.AvoidSelectAsterisk 

AvoidSelectAsterisk:SELECT *の使用禁止

Avoid Too Many Joins

OPT.INFORMIX.AvoidTooManyJoins 

AvoidTooManyJoins:JOINが多すぎるクエリの回避

Fully Qualified Names In Columns

OPT.INFORMIX.FullyQualifiedNamesInColumns 

FullyQualifiedNamesInColumns:列名を参照する際の修飾名の使用