ヘッダーをスキップ
Oracle® Database Oracleプリコンパイラのためのプログラマーズ・ガイド
11g リリース2(11.2)
B61344-01
  目次
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

1 概要

この章では、Oracleプリコンパイラについて説明します。Oracleデータを操作するアプリケーション・プログラムを開発する上でのプリコンパイラの役割と、プリコンパイラによりアプリケーションで実行できる処理について学習します。この章の項目は次のとおりです。

Oracleプリコンパイラ

Oracleプリコンパイラとは、高水準ホスト・プログラムで埋込みSQL文を使用可能にするプログラミング・ツールです。図1-1のように、プリコンパイラはホスト・プログラムを入力として受け入れ、埋込みSQL文を標準Oracleランタイム・ライブラリ・コールに変換して、コンパイル、リンクおよび実行が可能なソース・プログラムを生成します。

図1-1 埋込みSQLプログラムの開発

埋込みSQLプログラムの開発を説明する図
「図1-1 埋込みSQLプログラムの開発」の説明

代替言語

Oracleプリコンパイラには2種類あります(すべてのシステムで使用可能というわけではありません)。次の高水準言語がサポートされています。

  • C/C++

  • COBOL

異なるアプリケーション分野用で、異なる設計理念を反映するこれらの言語は、様々なプログラミング上のソリューションを提供します。


注意:

このマニュアルは、C/C++およびCOBOLでのプリコンパイラ使用の手引書と合せて参照してください。

Pro*FORTRANおよびSQL*Module for Adaはメンテナンス・モードであり、これらの製品のバージョン1は、リリース1.6以上の追加機能で強化されることはありません。ただし、オラクル社では、不具合が報告され、修正されるたびに、引き続きパッチ・リリースを発行します。

Oracleプリコンパイラを使用する理由

Oracleプリコンパイラを使用すると、アプリケーション・プログラムに柔軟なSQLを組み込むことができます。CやCOBOLなどの普及している高水準言語でSQLを使用できます。便利で使用しやすいインタフェースにより、アプリケーションからOracleに直接アクセスできます。

多くのアプリケーション開発ツールとは異なり、Oracleプリコンパイラでは、アプリケーションを高度にカスタマイズできます。たとえば、最新のウィンドウ機能およびマウス技術を取り込んだユーザー・インタフェースを作成できます。ユーザーとの対話なしに、バックグラウンドで実行するアプリケーションも作成できます。

さらに、Oracleプリコンパイラは、アプリケーションの微調整に役立ちます。リソースの使用状況、SQL文の実行状況および各種ランタイム・インジケータを綿密に監視できます。この情報に基づいて、最大のパフォーマンスが得られるようにプログラム・パラメータを調整できます。

SQLを使用する理由

Oracleデータにアクセスし、それを操作するには、SQLが必要です。SQLを対話形式で使用するか、アプリケーション・プログラムに埋め込むかは、実行する作業によって決まります。ジョブにCまたはCOBOLの手続き型処理機能が必要な場合や、ジョブを定期的に実行する場合は、埋込みSQLを使用してください。

SQLは、柔軟かつ強力で、しかも覚えやすいという特長から、好んで使用されるデータベース言語となりました。SQLは、非手続き型言語であるため、処理方法を指定せずに要求内容を指定できます。英文に似た少数の文を使用して、Oracleデータを1行ずつまたは複数行を一度に容易に操作できます。

任意(SQL*Plus以外)のSQL文をアプリケーション・プログラムから実行できます。たとえば、次のようなSQL文です。

SQL文は、アプリケーション・プログラムに埋め込む前に、SQL*Plusを使用して対話形式でテストできます。通常は、わずかな変更によって対話型SQLから埋込みSQLに切り替えることができます。

PL/SQLを使用する理由

SQLを拡張したPL/SQLは、手続き型構造体、変数宣言および強力なエラー処理をサポートするトランザクション処理言語です。同じPL/SQLブロック内で、SQLおよびPL/SQLの拡張機能のすべてを使用できます。

埋込みPL/SQLの主な利点は、パフォーマンスの向上です。SQLとは異なり、PL/SQLでは、SQL文を論理的にグループ化し、1文ずつではなくブロック単位でOracleに送ることができます。これにより、ネットワークの通信量と処理のオーバーヘッドが減少します。

アプリケーション・プログラムの埋込み方法を含め、PL/SQLの詳細は、第6章「Oracleプリコンパイラの実行」を参照してください。

Oracleプリコンパイラの機能と利点

図1-2のように、Oracleプリコンパイラには多くの機能と利点があり、効果的で信頼性の高いアプリケーションの開発に役立ちます。

図1-2 機能と利点

機能と利点
「図1-2 機能と利点」の説明

たとえば、Oracleプリコンパイラでは次のことが可能です。

要するに、Oracleプリコンパイラは、専門的な埋込みSQLプログラミング技法をサポートする多機能ツールです。

業界標準を満たすOracleプリコンパイラ

SQLは、リレーショナル・データベース管理システムにとっての標準言語となりました。この項では、次の機関によって規定された最新のSQL標準に対するOracleプリコンパイラの準拠の状況について説明します。

これらの機関では、SQLを次の出版物で定義されたものとして採用しています。

要件

ANSI X3.135-1992(非公式にはSQL92として知られる)では、適合するSQL言語が指定され、段階的に実装できるように、次の3つの言語レベルが定義されています。

  • Full SQL

  • Intermediate SQL(Full SQLのサブセット)

  • Entry SQL(Intermediate SQLのサブセット)

適合するSQL実装は、最低でもEntry SQLをサポートする必要があります。

ANSI X3.168-1992では、COBOL、FORTRAN、PascalまたはPL/Iなどの標準的なプログラミング言語で書かれたアプリケーション・プログラムに、SQL文を埋め込むための構文およびセマンティックが指定されています。

ISO/IEC 9075-1992では、ANSI規格が完全に採用されています。

FIPS PUB 127-2(連邦用に取得されたRDBMSソフトウェアに適用)では、ANSI規格も採用されています。さらに、データベース構造体用の最小サイズ設定パラメータを指定し、ANSI拡張機能を識別するためにFIPSフラガーを必要とします。

ANSI規格のコピーが必要な場合は、次の宛先にお問合せください。

American National Standards Institute 1430 Broadway New York, NY 10018, USA

ISO規格のコピーが必要な場合は、任意のISO加盟機関の国家規格局にお問合せください。NIST規格のコピーについては、次の宛先にお問合せください。

National Technical Information ServiceU.S. Department of Commerce Springfield, VA 22161, USA

準拠

Oracleプリコンパイラは、ANSI、 ISOおよびNIST規格に100%準拠しています。必要に応じて、Entry SQLをサポートし、FIPSフラガーを提供します。

FIPSフラガー

FIPS PUB 127-1によれば、「この標準によって指定されていない追加機能を提供する実装では、非準拠SQL言語または非準拠の方法で処理される可能性のある準拠SQL言語にフラグを付けるオプションも提供される」となっています。この要件を満たすために、OracleプリコンパイラにはFIPSフラガーが用意されており、ANSI拡張機能にフラグを付けます。拡張機能は、権限執行規則を除く、ANSI書式または構文規則に違反するSQL要素です。標準SQLに対するOracle拡張機能の一覧は、『Oracle Database SQL言語リファレンス』を参照してください。

FIPSフラガーは次のものを識別するために使用できます。

  • アプリケーションを非準拠環境に移す場合に、変更が必要になる可能性のある非準拠SQL要素

  • 別の処理環境で異なった動作をする可能性のある準拠SQL要素

したがって、FIPSフラガーは、移植性のあるアプリケーションの開発に役立ちます。

FIPSオプション

FIPSというオプションは、FIPSフラガーを制御します。FIPSフラガーを有効にするには、FIPS=YESをインラインまたはコマンドラインで指定します。コマンドライン・オプションFIPSの詳細は、「FIPS」を参照してください。

認定

NISTでは、約300のテスト・プログラムから成るSQLテスト・スイートを使用して、OracleプリコンパイラがANSI Entry SQLに準拠しているかどうかのテストを実施しました。具体的には、これらのプログラムにより、COBOLおよびFORTRAN埋込みSQL標準に対する適合性がテストされました。結果として、Oracleプリコンパイラは100% ANSIに準拠していることが保証されました。

テストの詳細は、次の宛先にお問合せください。

National Computer Systems LaboratoryAttn: Software Standards Testing ProgramNational Institute of Standards and TechnologyGaithersburg, MD 20899, USA