4.5 Pro*C/C++
Oracle Pro*C/C++プリコンパイラを使用すると、プログラマはユーザー定義データ型をCプログラムおよびC++プログラムで使用できます。
内容は次のとおりです。
4.5.1 Pro*C/C++について
Pro*C開発者は、Object Type Translatorを使用して、Oracleオブジェクト型およびコレクションを、Pro*Cアプリケーションで使用できるCのデータ型にマップできます。
Pro*Cでは、コンパイル時のオブジェクト型とコレクションのタイプ・チェック、およびデータベースのデータ型からCのデータ型への自動型変換が行われます。
Pro*Cには、オブジェクトを作成および破棄するためのEXEC SQL構文が含まれており、次の2つを使用してサーバーにあるオブジェクトにアクセスできます。
-
オブジェクト・キャッシュへのインタフェース(「Oracle Call Interface (OCI)」を参照)。この場合、オブジェクトにはポインタを介してアクセスし、サーバー上で変更および更新できます。
関連項目:
Pro*C/C++プリコンパイラの詳細は、『Pro*C/C++プログラマーズ・ガイド』を参照してください。
4.5.2 Pro*C/C++での連想アクセス
Pro*C/C++では、オブジェクトの連想アクセスに対して次の機能が提供されます。
-
オブジェクト・キャッシュに割り当てられたオブジェクトの一時コピーのサポート
-
埋込みSQLの
INSERT
、UPDATE
、DELETE
文、またはSELECT
文のWHERE
句の入力ホスト変数として参照されるオブジェクトの一時コピーのサポート -
埋込みSQLの
SELECT
およびFETCH
文で出力ホスト変数として参照されるオブジェクトの一時コピーのサポート -
オブジェクトの型およびスキーマ情報を取得するために
DESCRIBE
文を介してオブジェクト型を参照する、ANSI動的SQL文のサポート
関連項目:
連想アクセスのバックグラウンド情報については、「OCIプログラムにおける連想アクセス」を参照してください。
4.5.3 Pro*C/C++でのナビゲーショナル・アクセス
Pro*C/C++では、オブジェクトに対してさらにオブジェクト指向のインタフェースをサポートするために、次の機能が提供されます。
-
埋込みSQLの
OBJECT
DEREF
文を使用した、オブジェクト・キャッシュでのオブジェクトの参照解除、確保およびロック(オプション)のサポート -
オブジェクトが更新または削除された場合、または不要になった場合に、Pro*C/C++ユーザーが埋込みSQLの
OBJECT
UPDATE
、OBJECT
DELETE
およびOBJECT
RELEASE
文を使用してオブジェクト・キャッシュに通知できる機能 -
埋込みSQLの
OBJECT
CREATE
文を使用して、オブジェクト・キャッシュに新しい参照可能オブジェクトを作成するための機能 -
オブジェクト・キャッシュでの変更を、埋込みSQLの
OBJECT
FLUSH
文を使用してサーバーにフラッシュするための機能
関連項目:
ナビゲーショナル・アクセスのバックグラウンド情報については、「OCIプログラムのナビゲーショナル・アクセス」を参照してください。
4.5.4 Oracle型とCのデータ型間の変換
Pro*C/C++では、CおよびC++アプリケーションでOCI型を簡単に使用できるように、使いやすく拡張されています。
Oracle Type Translator (OTT)によって生成されるオブジェクトのC表現では、不透明で内部形式の変更が見えなくなりますが、CまたはC++アプリケーションで使用するのに扱いにくいOCI型が使用されます。このような表現には、スカラー属性に対するOCIString
およびOCINumber
や、コレクション型やオブジェクト参照に対するOCITable
型、OCIArray
型およびOCIRef
型があります。
Pro*C/C++での拡張は次のとおりです。
-
埋込みSQLの
OBJECT
GET
文を使用することで、オブジェクト属性を取得し暗黙的にCのデータ型に変換可能。 -
埋込みSQLの
OBJECT
SET
文を使用することで、オブジェクト属性をCのデータ型で設定可能。 -
埋込みSQLの
COLLECTION
GET
文を使用することで、コレクションをホスト配列にマップ可能。さらに、コレクションがスカラー型で構成されている場合、OCI型は、暗黙的にCのデータ型に変換されます。 -
埋込みSQLの
COLLECTION
SET
文を使用することで、ホスト配列でコレクションの要素を更新可能。COLLECTION
GET
文と同様、コレクションがスカラー型で構成されている場合、Cのデータ型は、暗黙的にOCI型に変換されます。
4.5.5 Oracle Type Translator(OTT)
Oracle Type Translator (OTT)は、オブジェクト型に対応するCの構造体を自動的に生成するプログラムです。
OTTは、Pro*CプリコンパイラおよびOCIサーバー・アクセス・パッケージをさらに使用しやすくします。
関連項目:
OTTの詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』および『Pro*C/C++プログラマーズ・ガイド』を参照してください。