プライマリ・コンテンツに移動
Pro*C/C++プログラマーズ・ガイド
12c リリース1(12.1)
B71397-03
目次へ移動
目次
索引へ移動
索引

前
次

Pro*C/C++の新しいデータベース型の概要

表17-2に、オブジェクト・サポートのための新たなデータベース型を示します。

表17-2 Pro*C/C++での新しいデータベース型の使用

操作データベース型 DECLARE ALLOCATE FREE MANIPULATE

オブジェクトのタイプ

ホスト: OTTで生成されたC言語の構造体へのポインタ

インジケータ: OTTで生成されたインジケータ構造体へのポインタ

連想アクセス用インタフェース:

EXEC SQL ALLOCATE

ナビゲーショナル・アクセス用インタフェース:

EXEC SQL OBJECT CREATE ...

EXEC SQL OBJECT DEREF

ホスト変数およびインジケータのためのメモリーをオブジェクト・キャッシュに割り当てます。

EXEC SQL FREEまたはEXEC SQL CACHE FREE ALLを使用して解放するか、セッションの終わりに自動的に解放します。

C言語のポインタを間接参照(DEREF)して各属性を取得します。操作方法は属性の型によって異なります(次を参照)。

COLLECTIONオブジェクト・タイプ

(NESTED TABLEおよび可変長配列)

ホスト: OTTで生成されたC言語の構造体へのポインタ

インジケータ: OCIInd

EXEC SQL ALLOCATE

ホスト変数のためのメモリーをオブジェクト・キャッシュに割り当てます。

EXEC SQL FREEまたはEXEC SQL CACHE FREE ALLを使用して解放するか、セッションの終わりに自動的に解放します。

OCIColl*関数(oci.hに定義)を使用して、各要素を取得または設定します。コレクションも参照してください。

REF

ホスト: OTTで生成されたC言語の構造体へのポインタ

インジケータ: OCIInd

EXEC SQL ALLOCATE

ホスト変数のためのメモリーをオブジェクト・キャッシュに割り当てます。

EXEC SQL FREEまたはEXEC SQL CACHE FREE ALLを使用して解放するか、セッションの終わりに自動的に解放します。

EXEC SQL OBJECT DEREFを使用します。

ナビゲーショナル・アクセス用インタフェースでEXEC SQL OBJECT SET/GETを使用します。

LOB

ホスト:

OCIBlobLocator *、OCIClobLocator *またはOCIBfileLocator *

インジケータ: OCIInd

EXEC SQL ALLOCATE

を使用してホスト変数用のメモリーをユーザー・ヒープ内で割り当てます。

malloc()。

EXEC SQL FREEを使用して解放するか、すべてのPro*C/C++接続のクローズ時に自動的に解放します。EXEC SQL CACHE FREE ALLでは、オブジェクトのLOB属性のみ解放されます。

または、dbms_lobパッケージの埋込みPL/SQLストアド・プロシージャを使用するか、あるいは

oci.hに定義されているOCILob*関数を使用します。

LOBも参照してください。

注意:

Pro*C/C++では、これらの型のホスト配列は、SQLのバルク・フェッチまたはバルク挿入操作で宣言および使用できます。

-

-

-

-

表17-3に、Pro*C/C++での新たなC言語のデータ型の利用方法を示します。

表17-3 Pro*C/C++での新たなC言語のデータ型の使用

操作C言語のデータ型 DECLARE ALLOCATE FREE MANIPULATE

OCIDate

ホスト: OCIDate *

インジケータ: OCIInd

EXEC SQL ALLOCATE

ホスト変数のためのメモリーをオブジェクト・キャッシュに割り当てます。

EXEC SQL FREEまたはEXEC SQL CACHE FREE ALLを使用して解放するか、セッションの終わりに自動的に解放します。

(1)oci.hに定義されたOCIDate*関数を使用します。

(2)EXEC SQL OBJECT GET/SETを使用します。または

(3)oci.hに定義されているOCINumber*関数を使用します。

OCINumber

ホスト: OCINumber *

インジケータ: OCIInd

EXEC SQL ALLOCATE

ホスト変数のためのメモリーをオブジェクト・キャッシュに割り当てます。

EXEC SQL FREEまたはEXEC SQL CACHE FREE ALLを使用して解放するか、セッションの終わりに自動的に解放します。

(1)EXEC SQL OBJECT GET/SETを使用します。または

(2)oci.hに定義されているOCINumber*関数を使用します。

OCIRaw

ホスト: OCIRaw *

インジケータ: OCIInd

EXEC SQL ALLOCATE

ホスト変数のためのメモリーをオブジェクト・キャッシュに割り当てます。

EXEC SQL FREEまたはEXEC SQL CACHE FREE ALLを使用して解放するか、セッションの終わりに自動的に解放します。

oci.hに定義されているOCIRaw*関数を使用します。

OCIString

ホスト: OCIString *

インジケータ: OCIInd

EXEC SQL ALLOCATE

ホスト変数のためのメモリーをオブジェクト・キャッシュに割り当てます。

EXEC SQL FREEまたはEXEC SQL CACHE FREE ALLを使用して解放するか、セッションの終わりに自動的に解放します。

(1)EXEC SQL OBJECT GET/SETを使用します。または

(2)oci.hに定義されているOCIString*関数を使用します。

注意:

Pro*C/C++では、これらの型のホスト配列は、SQLのバルク・フェッチまたはバルク挿入操作で使用できない場合があります。

-

-

-

-

Oracle8での新しいデータ型は、REF、BLOB、NCLOB、CLOBおよびBFILEです。これらの型は、オブジェクト内またはリレーショナル列に使用することができます。どちらの場合も、Cバインドに従ってホスト変数にマップされます。

関連項目:

Cバインドについては、Pro*C/C++の新しいデータベース型の概要を参照してください。