COBSQL

COBOL プログラムに次の形式で埋め込み SQL 文を記述すると、COBSQL を使用して Oracle のデータベース管理システム (DBMS) の SQL 機能を利用できます。

EXEC SQL
   SQL statement
END-EXEC

埋め込み SQL 文を含むプログラムは、COBOL コンパイラでコンパイルする前に Oracle のプリコンパイラで処理する必要があります。データベース プリコンパイラにより、埋め込み SQL 文がデータベース サービスへの適切な呼び出しに置き換えられます。さらに、COBOL ホスト変数をデータベース システムで認識できる SQL 変数名にバインドするコードがソース コードに追加されます。

このように SQL を埋め込むことの利点は、個々のデータベース ルーチン呼び出しの形式を知る必要がないことです。ただし欠点として、プログラムをデバッグする際に表示されるソース コードが、元の埋め込み SQL ではなく、プリコンパイラによる出力になります。この問題は COBSQL を使用すると回避できます。

COBSQL は、Micro Focus COBOL とサード パーティのスタンドアロン型プリコンパイラを統合するインターフェイスとして機能するため、EXEC SQL 文を含むプログラムのデバッグと、プリコンパイラで生成されたコードではなく元のソース コードの表示が可能です。

注:
  • すでに COBSQL を Micro Focus COBOL の旧製品とともに使用しており、作成済みのアプリケーションをこのシステムに移行する場合は、COBSQL を使用してください。他の埋め込み SQL アプリケーション開発には OpenESQL をお勧めします。
  • Pro*COBOL を使用していない限り、コンパイラ指令 SOURCEFORMAT(VARIABLE) でコンパイルされたプログラムで COBSQL を使用することはできません。Pro*COBOL は、SOURCEFORMAT(TERMINAL) および SOURCEFORMAT(VARIABLE) の両方をサポートしています。プログラムが自由形式の場合は、OpenESQL を使用してください。
重要: これは、UNIX 環境 (リモート開発) にのみ該当します。

UNIX 環境で COBOL から DSBMS にアクセスするには、DBMS が使用する API ルーチンを COBOL ランタイム システムが認知する必要があります。データベース ベンダーによっては、次のいずれかを作成するスクリプトが提供されています。

  • COBOL ランタイム システムと DBMS ルーチンで構成される、実行可能ランタイム システム
  • 実行時に COBOL ランタイム システムが検索できる DBMS ルーチンの呼び出し可能共有オブジェクト

このスクリプトには cob コマンドが含まれており、cob コマンドのオプションを修正することでスクリプトの影響を制御できます。詳細については、「cob (cob32 または cob64) コマンド」を参照してください。