Versions Compared

Key

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

7.110 自由形式のSELECT_SQL

Note

注: 注意:利用オプション

SELECT_SQLコマンドには2つの形式があります。このセクションでは、特定のデータベース・エンジンで有効な任意のSQLを使用できる自由形式のSELECT_SQLコマンドについて説明します。コンパイル時にも実行時にもSQLの解析は実行されません。入力されたSQLコマンドは、そのままデータベース・エンジンに渡されます。RDMLプログラマの責任で、データベース・エンジンから返されるデータがFIELDSパラメータのフィールド・リストと一致するようにしてください。SELECT_SQLのもう1つの形式については、「7.109 SELECT_SQL」を参照してください。

この形式のSELECT_SQLコマンドは、RDMLXファンクションおよびコンポーネントでのみ使用できます。

...

  1. SELECT_SQLによってアクセスする情報は読み取り専用です。USINGパラメータでINSERTまたはUPDATEステートメントを使用する場合は、各自の責任において行ってください。

  2. SELECT_SQLはIOモジュール/OAMを使用しないため、リポジトリの検証およびトリガーは省略されます。

  3. SELECT_SQLコマンドは、主に、レポート、画面、または他のテーブルに出力するために、1つ以上のSQLデータベース・テーブル(ファイル)からの複雑な抽出/結合/要約抽出を実行するためのものです。大容量または頻繁に使用される対話型アプリケーションでの使用は想定されていません。
    このように使用目的に制限がある一方、SELECT_SQLは、結果の出力先が画面、プリンター、または別ファイル(テーブル)のどれであっても、多くの結合/抽出/要約アプリケーションを大幅に単純化し、高速化することのできる非常に強力で便利なコマンドです。

  4. SELECT_SQLコマンドは、SQLデータベース機能で直接サポートされる、非常に強力なデータベース抽出/結合/要約機能を提供します。ただし、現時点では、IBM i におけるSQLの実装に、状況によって大量のリソースが必要になる場合があります。このコマンドでもたらされる大きな利点と必要リソースのバランスの比較検討およびその適切な使用は、すべてユーザーの責任において行ってください。考慮すべき要因の1つに、USINGパラメータで、非キー・フィールドを使用するかどうかがあります。使用する場合、通常、SELECT_SQLの方がSELECTより高速です。使用しない場合は、SELECTの方が高速です。このことは、IBM iでも実行予定のプログラムをまずVisual LANSAで開発する場合に特に重要になります。これは、Visual LANSAでは、SELECTおよびSELECT_SQL間のパフォーマンスの差がそれほど大きくないためです。 

  5. GOTO コマンドで SELECT_SQL ループを出ないようにしてください。これにより、SQL カーソルがオープン状態のままになる場合があります。SELECT_SQL ループから出る場合は、LEAVE RDML コマンドを利用してください。

  6. このセクションでは、ユーザーにSQLの'SELECT'コマンドに関する知識があることを前提としています。ここでは、RDMLファンクションからSQLの'SELECT'コマンドに直接アクセスする方法について説明しますが、SQLの'SELECT'コマンドの構文、形式、および使用については扱いません。

...

移植性に関する考慮事項

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

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

7.110.1 自由形式のSELECT_SQLのパラメータ

7.110.2 自由形式のSELECT_SQLの使用例

7.110.3 自由形式のSELECT_SQLの参考文献

7.110.4 自由形式のSELECT-SQLの強制変換


Panel
bgColor#ffffcc

                                                                                          必須

  SELECT_SQL ----- FIELDS --------- フィールド名 --------------------->

                       >-- USING -------- SQL select コマンド ---------------->

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

                                                                                          任意指定

                      >-- FROM_FILES --- ファイル名 ------------------------->
                                                     |                                                       |
                                                      --------------- 最大 20 -------------

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

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