ヘッダーをスキップ

Oracle Rdb SQLリファレンス・マニュアル リリース7.2 E06178-01 |
| 目次 | 索引

戻る | 次へ |

# 3.1 SQLモジュール言語およびSQLモジュール・プロセッサの概要

SQLモジュール言語およびSQLモジュール・プロセッサでは、SQLプリコンパイラでサポートされていないものを含め、任意のホスト言語からコールされるSQL文を含むプロシージャを使用できます。

SQLモジュール言語では、SQLモジュール・ファイルと呼ばれる別個のファイルに格納されたSQL文を実行する、ホスト言語プログラムのためのコール・メカニズムが提供されています。このファイルには、単一SQLモジュールを指定するモジュール言語要素が含まれています。モジュールには、1つ以上のプロシージャが含まれています。プロシージャには次が含まれています。

- 単一文（単一SQL文およびオプションのパラメータ宣言で構成）

- 複合文（ローカル変数宣言、複数のSQL文、制御フロー文およびトランザクション管理文を含めることが可能）

単一のSQL文が組み込まれたプロシージャは、単一文プロシージャと呼ばれます。複合文（複数のSQL文を含めることが可能）を含むプロシージャは、複数文プロシージャと呼ばれます。

ホスト言語プログラムでは、コール文を使用して特定のSQLモジュール・プロシージャを指定し、数とデータ型がプロシージャ内のパラメータ宣言に対応している一連の実パラメータを指定します。SQLモジュール内のプロシージャをコールすると、プロシージャ内の単一文または複合文が実行されます。

SQLモジュール言語には次の利点があるため、プリコンパイルされたSQLではなくSQLモジュール言語の使用をお薦めします。

- モジュール言語では、任意のホスト言語からコールされるSQL文を含むプロシージャを使用できます。一方、SQLプリコンパイラではホスト言語のサブセットのみがサポートされています（Ada、C、COBOL、FORTRAN、PascalおよびPL/I）。

- SQLモジュール言語を使用するプログラムでは、SQLモジュール内のすべてのSQL文を分離してモジュール性を改善し、同じソース・ファイルでの2つの言語の使用を回避できます。

- プログラムでは、SQLモジュールをコールすることによってSQLプリコンパイラの制約を回避できます。

  - ポインタ変数をサポートするプログラムでは、動的SQLを最大限に利用して、SQLモジュール言語でSQLDAおよびSQLDA2を使用できます。

  - SQLモジュール言語では、プリコンパイラによってサポートされていないホスト言語機能（Cのポインタ変数、ブロック構造、マクロ、ユーザー定義型、配列要素の参照など）の使用が制限されていません。

- ANSI規格準拠の言語で記述されたプログラムでは、SQLモジュール内でANSI非準拠のSQL文を分離することによって、ANSI規格に準拠していないコードの埋込みを回避できます。

SQLモジュール言語のプログラミング上の検討事項の詳細は、『Oracle Rdb7 Guide to SQL Programming』を参照してください。