ヘッダーをスキップ
Pro*COBOL®プログラマーズ・ガイド
11gリリース2(11.2)
E50141-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 概要

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

Pro*COBOLの概要

Oracle Databaseにアクセスするには、Structured Query Language (SQL)という高水準の問合せ言語を使用します。通常はSQL*Plusなどの対話型インタフェースを介してSQLを使用します。

Pro*COBOLは、SQL文をCOBOLプログラムに埋め込むことができるプログラミング・ツールです。Pro*COBOLプリコンパイラは、COBOLプログラム内のSQL文を標準のOracleランタイム・ライブラリ・コールに変換します。生成された出力ファイルは、通常の方法でコンパイル、リンクおよび実行できます。

迅速な開発と他のシステムとの互換性を優先する場合は、Pro*COBOLプリコンパイラを使用します。

Pro*COBOLプリコンパイラ

Pro*COBOLプリコンパイラは、SQL文をCOBOLプログラムに埋め込むことができるプログラミング・ツールです。図1-1のように、プリコンパイラはホスト・プログラムを入力として受け入れ、埋込みSQL文を標準Oracleランタイム・ライブラリ・コールに変換して、通常の方法でコンパイル、リンクおよび実行できるソース・プログラムを生成します。

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

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


注意:

Pro*COBOLは、Windows 2000の32-bit版対応のMicro Focus Net Express 4.0をサポートしています。


注意:

Pro*COBOLでは、オブジェクト指向COBOL(OOCOBOL)仕様をサポートしていません。

代替言語

Oracleプリコンパイラは次の言語で使用できます(ただし、すべてのシステムで使用できるとはかぎりません)。

  • C/C++

  • COBOL

  • FORTRAN

Pro*Pascal、Pro*ADAおよびPro*PL/Iが今後リリースされることはありません。ただしOracleでは、Pro*FORTRANの不具合のレポートとその修正が行われるごとに、今後もパッチ・リリースを提供していきます。

Pro*COBOLプリコンパイラを使用する利点

Pro*COBOLプリコンパイラを使用すると、アプリケーション・プログラムに強力で柔軟なSQLを組み込めます。SQL文をCOBOLに埋め込むことができます。便利なインタフェースによって、アプリケーションから直接Oracleにアクセスできます。

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

さらに、Pro*COBOLを使用してアプリケーションを微調整できます。リソース使用率、SQL文の実行および様々なランタイム・インジケータの状況を詳細に監視できます。得られた情報に基づいて、最大のパフォーマンスが実現できるようにプログラムのパラメータを調整できます。

SQL言語

Oracleデータにアクセスして操作するには、SQLが必要です。SQLを対話形式で使用するか、アプリケーション・プログラムに埋め込んで使用するかは、作業の内容によって異なります。COBOLのプロシージャ処理能力を必要とする作業や定期的に実行する作業の場合は、埋込みSQLを使用します。

SQLは、その柔軟で強力な特性、および習得が容易であることから、最もすぐれたデータベース言語となりました。SQLは非プロシージャ言語であるため、目的とする処理を指定するときにその方法を指定する必要がありません。英文に似た少数の文で、Oracleデータを一度に1行または複数行ずつ簡単に操作できます。

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

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

PL/SQL言語

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

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

アプリケーション・プログラムにPL/SQLを埋め込む方法などPL/SQLの詳細は、第6章「埋込みPL/SQL」を参照してください。

Pro*COBOLの機能および利点

図1-2に示すように、Pro*COBOLには、効率がよく信頼性の高いアプリケーション開発を支援する機能および利点が数多くあります。

図1-2 Pro*COBOLの機能および利点

Pro*COBOLの機能
「図1-2 Pro*COBOLの機能および利点」の説明

たとえば、Pro*COBOLプリコンパイラを使用して次のことができます。

ディレクトリ構造

Pro*COBOLをインストールする際に、Oracle Universal Installerによって\precompというディレクトリがORACLE_BASE\ORACLE_HOMEディレクトリに作成されます。


注意:

\precompディレクトリには、Pro*C/C++など他の製品のファイルが格納されている場合があります。

\precompディレクトリは、表1-1に示すディレクトリで構成されています。

表1-1 ディレクトリ

ディレクトリ名 内容

\admin

構成ファイル

\demo\procob2

Pro*COBOLリリース9.2.0のサンプル・プログラム

\demo\sql

サンプル・プログラムのSQLスクリプト

\doc\procob2

Pro*COBOLリリース9.2.0のREADMEファイル

\lib

ライブラリ・ファイル

\mesg

メッセージ・ファイル

\public

ヘッダー・ファイル


ヘッダー・ファイル

ORACLE_BASE\ORACLE_HOME\precomp\publicディレクトリには、表1-2に示すPro*COBOLのヘッダー・ファイルが格納されています。

表1-2 ヘッダー・ファイル

ヘッダー・ファイル 説明

oraca.cob

ランタイム・エラーの診断、およびプログラムによる様々なOracleリソースの使用状況の監視に役立つOracle通信領域(ORACA)が含まれています。

oraca5.cob

ORACA5は、ORACAのCOMP-5バージョンです。

sqlca.cob

ランタイム・エラーの診断に役立つSQLコミュニケーション領域(SQLCA)が含まれています。SQLCAは、実行可能なSQL文が実行されるたびに更新されます。

sqlca5.cob

SQLCA5は、SQLCAのCOMP-5バージョンです。

sqlda.cob

動的SQL方法4を使用するプログラムに必要なデータ構造であるSQL記述子領域(SQLDA)が含まれています。

sqlda5.cob

これは、SQLDAのCOMP-5バージョンです。


ライブラリ・ファイル

ORACLE_BASE\ORACLE_HOME \precomp\libディレクトリには、Pro*COBOLアプリケーションをリンクするときに使用するライブラリ・ファイルが格納されています。ライブラリ・ファイル名は、orasql11.libです。

既知の問題、制限事項および対処方法

  1. Windowsのすべてのオペレーティング・システムでは、ファイル名やディレクトリ名にスペースを含めることができますが、Oracle Pro*COBOLプリコンパイラでは、ファイル名やディレクトリ名にスペースを含むファイルはプリコンパイルされません。たとえば、次のような書式は使用しないでください。

    • proc iname=test one.pc

    • proc iname=d:\dir1\second dir\sample1.pc

  2. SPARC Solaris 64ビット・コンピュータでは、COMP5プリコンパイラ・オプションを使用できません。かわりにCOMPオプションを使用します。

互換性、アップグレードおよび移行

追加の「配列INSERT」および「配列SELECT」構文は、DB2プリコンパイラ・アプリケーションをPro*Cobolアプリケーションに移行する場合に役立ちます。これは、DB2の配列INSERTおよび配列SELECT構文をOracle Pro*Cobol用に変更する必要がないためです。

Pro*Cobolでサポートされている「暗黙的なバッファ済INSERT」機能は、パフォーマンスを向上させるために、Pro*Cobolの配列構文を使用せず、DB2プリコンパイラ・アプリケーションをPro*Cobolアプリケーションに移行する場合に役立ちます。