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

前
次

OCIDate、OCIString、OCINumberおよびOCIRawの使用について

これらのOCI型はそれぞれ、日付、可変長のヌルで終了する文字列、Oracleでの数、および可変長のバイナリ・データを表す新しいC言語の表現です。これらの型は、いくつかの面でこれまでのC言語の数量表現よりも機能的になっています。たとえば、OCIDate型はクライアント側のルーチンが日付演算を実行する準備をします。これは以前のリリースではサーバーでのSQL文を必要としていました。

OCIDate、OCIString、OCINumberおよびOCIRawの宣言

OCI*型は、OTT生成の構造体でオブジェクト型の属性として表示され、Pro*C/C++プログラムではオブジェクト型の一部として使用します。オブジェクト型として使用しない場合に、初心者レベルのC言語およびPro*C/C++ユーザーは、これらの型のホスト変数を単独で宣言しないでください。経験豊富なPro*C/C++ユーザーは、これらの型の高い機能性を活かすように、それぞれのCホスト変数を宣言してもかまいません。ホスト変数はこれらの型へのポインタOCIString *sなどとして宣言される必要があります。対応付けられた(オプションの)インジケータは、2バイトの符号付きスカラー、つまりOCIInd s_indなどとして宣言されます。

埋込みSQLでのOCI型の使用

これらの型のホスト変数のための領域は、EXEC SQL ALLOCATEを使用してオブジェクト・キャッシュに割り当てられます。これらの型を表すスカラー標識変数は、ALLOCATEおよびFREEコマンドには使用できません。このようなインジケータは、スタック上で静的に割り当てるか、またはヒープ上で動的に割り当てます。領域の割当ては、EXEC SQL FREE文またはEXEC SQL CACHE FREE ALL文を使用して解除できます。また、セッションの終わりには自動的に解除されます。

関連項目:

これらの文については、ナビゲーショナル・アクセス用インタフェースを参照してください。

OCI型の操作

年、月、日、時など、様々な日付コンポーネントごとに個別フィールドを持つ構造型OCIDateを除き、他のOCI型はカプセル化されているため外部ユーザーには見えません。現在、VARCHARのような既存のC言語のデータ型はPro*C/C++で処理されますが、この方法とは対照的にOCIヘッダー・ファイルoci.hをインクルードし、その関数を使用してDATE算術を実行したり、これらの型とintcharなどのC言語固有の型の間で変換したりできます。