Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

7.109 SELECT_SQL

Note
title注意

利用オプション

注意:利用オプション  SELECT_SQL ステートメント ウィザードを参照

ネイティブIBM i データベース・アクセスを使用する標準のSELECTコマンドとは異なり、SELECT_SQLコマンドは、SQL/400製品を使用してデータベース・アクセスを実行します。 

SELECT_SQLコマンドには2つの形式があります。1つは、このセクションで説明する十分に構造化された形式です。この形式では、SQLを正しく構成し、プラットフォームによって異なるオブジェクト名に対応することができますが、SELECTステートメントのタイプは非常に単純なものに制限されます。もう1つは、自由形式のSELECT_SQLです。この形式では、データベース・エンジンが有効な構文として受け入れる任意のSELECTステートメントを入力できますが、LANSAでは、複数のプラットフォームに渡るオブジェクト名の互換性維持について考慮されません。これらの2つの違いにより、SQLが複数のデータベースに渡って予想どおりに実行されない可能性が高くなります。詳細については、「7.110 自由形式のSELECT_SQL」を参照してください。

SELECT_SQLコマンドは、ENDSELECTコマンドと対で使用し、1つ以上のテーブル (ファイル) の、1行以上の行 (レコード) を処理するための「ループ」を作成します。 

...

PRC1064

** WARNING: Name is not a defined field. Correct it for portability.

フィールド名としていずれかのファイルの実列を使用できるため、選択は機能しますが、LANSAでサポートされるすべてのデータベースで機能するためには、フィールド名(ハッシュ記号なし)を使用する必要があります。

PRC1065

** WARNING: Field <afield> is not a physical field in any of the files in the FROM_FILES parameter.

LANSAは、FROM_FILESパラメータで指定されたいずれかのファイルにおいて、SQLで指定された名前がLANSAで認識されているかどうかを検査します。その名前がLANSA名であるか、変換された名前であるか、または列名の変更であるかを検査する他、予約済みのSQLキーワードであるかどうかも検査します。どれにも該当しない場合、この警告が表示されます。 

この警告の原因として、フィールド名の代わりに列名が使用されていることが考えられます。この場合、SQLはVisual LANSAで動作します。または、フィールドが正しくない可能性があり、この場合は実行時に失敗します。

PRC1067

** Fields A$ and A_ both resolve to A_ so A_ in SELECT_SQL will be set with Non-IBM i text A_

同じ名前に解決されるフィールドが複数ある場合、生成されたコードで各フィールドを識別できなくなり、コンパイル・エラーが発生します。SELECT_SQLでは、下位互換性を保つために固定リテラル値が使用されるため、コンパイルは成功します。ただし、これはIBM i で実行されない場合があります。1つのファンクション内でこのように一致するフィールドを使用しないようコードを変更してください。 

例えば、列名がA_で固定されている場合、IBM iでは実行されません。代わりにA$を使用してください。

移植性に関する考慮事項

複数のプラットフォームを使用する場合、各プラットフォームで使用されるフィールド長を考慮してください。WHERE パラメータを参照してください。

Visual LANSAからIBM i 上のデータベースに接続するためにこのコマンドを使用しないでください。この目的でSELECT_SQLコマンドを使用しても、IBM i 上のデータベースではなく、PC上へのデータベースにアクセスします。このタイプの接続を行うには、リモート・プロシージャ・コール(すなわち、call_server_function)を使用する必要があります。

次のトピックも参照してください。

7.109.1 SELECT_SQL のパラメータ

7.109.2 SELECT_SQL の列名と列値

7.109.3 SELECT_SQL の使用例

7.109.4 SELECT_SQL の参考文献

7.109.5 SELECT-SQL の強制変換


Panel
bgColor#ffffcc

                                                                                              必須

  SELECT_SQL ---- FIELDS --------- フィールド名 ----- *SAME --------------->
                                                     |                        SQLフィールド・ソース  |
                                                       ----------------- 最大1000 --------------

                    >-- FROM_FILES ------- フィールド名 ---- 相関---------------->
                                                     |                                                                |
                                                       ----------------- 最大20-----------------

 ------------------------------------------------------------------------------------

                                                                                              任意指定

                    >-- WHERE --------- 'SQL where 条件' ------------------------>

                    >-- GROUP_BY ----- 'SQL group by ' ----------------------->

                    >-- HAVING ------- 'SQL having 条件' ------------------------>

                    >-- ORDER_BY ----- 'SQL order by パラメータ' --------------->

                    >-- DISTINCT ------ *NO -------------------------------------->
                                                    *YES

                    >-- IO_STATUS ----- フィールド名 --------------------------->
                                                   *STATUS

                    >-- IO_ERROR ----- *ABORT ----------------------------------|
                                                   *NEXT
                                                   *RETURN
                                                   ラベル