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 | UnusedLocalVar:未使用のローカル変数の回避 |
高 | 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:列名を参照する際の修飾名の使用 |