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

前
次

ALLOCATE (実行可能埋込みSQL拡張機能)

用途

カーソル変数がPL/SQLブロックで参照されるように割り当てるか、オブジェクト・キャッシュに領域を割り当てます。

前提条件

カーソル変数にメモリーを割り当てるには、その前にsql_cursor型のカーソル変数(データ型とホスト変数を参照)を宣言する必要があります。

オブジェクト・キャッシュにメモリーを割り当てるには、その前にホスト構造体を指すポインタとオプションのインジケータ構造体を指すポインタを宣言する必要があります。

データベースへの接続が必ずアクティブである必要があります。

構文

キーワードおよびパラメータ

キーワードおよびパラメータ 説明

db_name

CONNECT文で先に設定されるデータベース接続名を含むNULL終了文字列。省略した場合または空文字の場合は、デフォルトのデータベース接続とみなされます。

host_variable

データベース接続名を格納するホスト変数。

cursor_variable

割り当てるカーソル変数。

host_ptr

オブジェクト型に対してOTTにより生成されるホスト構造体へのポインタ、sql_context型のコンテキスト変数、OCIRowidへのタイプ・ポインタのROWID変数、またはLOBの型に対応するLOBロケータ変数。

ind_ptr

インジケータ構造体へのオプションのポインタ。

使用上の注意

カーソルは静的ですが、カーソル変数は特定の問合せに結び付けられていないため動的です。カーソル変数は、型の互換性のある任意の問合せに対してオープンできます。

この文の詳細は、Oracle Database PL/SQL言語リファレンスおよびOracle Database SQL言語リファレンスを参照してください。

この部分的な例では、Pro*C/C++プログラムでALLOCATE文を使用する方法を示します。

EXEC SQL BEGIN DECLARE SECTION;
   SQL_CURSOR emp_cv;
   struct{ ... } emp_rec;
EXEC SQL END DECLARE SECTION;
EXEC SQL ALLOCATE :emp_cv;
EXEC SQL EXECUTE
   BEGIN
      OPEN :emp_cv FOR SELECT * FROM emp;
   END;
END-EXEC;
for (;;)
   {
   EXEC SQL FETCH :emp_cv INTO :emp_rec;
   ...
   }

関連項目