ヘッダーをスキップ
Oracle Call Interfaceプログラマーズ・ガイド
11g リリース1(11.1)
E05677-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

OCIの型情報アクセッサ関数

この項では、OCIの型情報アクセッサ関数について説明します。

表18-12 型情報アクセッサ関数

関数 用途

OCITypeArrayByName()


オブジェクト名配列を指定してTDO配列を取得します。

OCITypeArrayByRef()


オブジェクト参照配列を指定してTDO配列を取得します。

OCITypeByName()


オブジェクト名を指定してTDOを取得します。

OCITypeByRef()


オブジェクト参照を指定してTDOを取得します。



OCITypeArrayByName()

用途

名前配列を指定して型配列を取得します。

構文

sword OCITypeArrayByName ( OCIEnv             *envhp,
                           OCIError           *errhp,
                           const OCISvcCtx    *svc,
                           ub4                array_len,
                           const OraText      *schema_name[],
                           ub4                s_length[],
                           const OraText      *type_name[],
                           ub4                t_length[],
                           const OraText      *version_name[],
                           ub4                v_length[],
                           OCIDuration        pin_duration,
                           OCITypeGetOpt      get_option,
                           OCIType            *tdo[] );

パラメータ

envhp (IN/OUT)

オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、OCIEnvCreate()およびOCIInitialize()の説明を参照してください。

errhp (IN/OUT)

OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。

svc (IN)

OCIサービス・ハンドルです。

array_len (IN)

取り出されるschema_name/type_name/version_nameエントリの数です。

schema_name (IN、オプション)

取り出される型に対応付けられているスキーマ名の配列です。この配列を指定する場合は、array_len個の要素が必要です。0(ゼロ)を指定した場合は、デフォルト・スキーマであるとみなされます。それ以外の場合は、array_len個の要素が必要です。デフォルト・スキーマが必要であることを指示するために、1つ以上のエントリに0(ゼロ)を指定できます。

s_length (IN)

schema_name長さの配列で、それぞれのエントリが、schema_name配列の対応するschema_nameエントリのバイト単位の長さに対応しています。この配列には、array_len個の要素が必要です。schema_nameが指定されていない場合は、0(ゼロ)にしてください。

type_name (IN)

取り出される型の名前の配列です。array_len個の要素が必要です。

t_length (IN)

type_name配列にある型名のバイト単位の長さの配列です。

version_name (IN)

バージョン名は無視され、要求された型の最新バージョンが戻されます。リリース9.0.1以上は型の変更が可能であるため、それより前のリリースのアプリケーションで変更された型にアクセスすると、エラーが発生します。この場合は、新しい型定義を使用して、アプリケーションの変更、再コンパイルおよび再リンクを行う必要があります。

取り出される型に対応するバージョン名の配列です。この配列は、最新バージョンの取出しを示す0(ゼロ)にするか、またはarray_len個の要素が必要です。

0(ゼロ)が指定された場合は、最新バージョンとみなされます。それ以外の場合は、array_len個の要素が必要です。現行バージョンが必要であることを示すために、複数のエントリに0(ゼロ)を指定できます。

v_length (IN)

version_name配列にあるバージョン名のバイト単位の長さの配列です。

pin_duration (IN)

取り出された型用の確保継続時間(たとえば、カレント・トランザクションの終わりまで)です。各オプションの説明は、oro.hを参照してください。

get_option (IN)

型をロードするためのオプションは、次のどちらかの値です。

tdo (OUT)

オブジェクト・キャッシュに確保された各型へのポインタ用出力配列です。これには、array_lenポインタ用の領域が必要です。OCIObjectGetObjectRef()を使用して、確保された各型記述子に対するCREFを取得します。

コメント

スキーマ/型名配列に対応付けられている既存の型のポインタを取得します。

get_optionパラメータを使用すると、各ラウンドトリップごとにロードされるTDOの部分を制御できます。

この関数は、必須パラメータにNULLがある場合、あるいはスキーマ名または型名に対応付けられたオブジェクト型が存在しない場合はエラーを戻します。

配列ではなく単一の型を取り出すには、OCITypeByName()を使用します。


注意:


この関数で取得されたTDO(TDOまたは表定義の配列)は、渡されたサービス・ハンドル(接続)に対応するキャッシュの論理パーティションに属します。TDOまたは表が論理パーティション間で使用される場合、動作は不明であり、リリースによって変化する可能性があります。

関連関数

OCITypeArrayByRef()OCITypeByName()OCITypeByRef()


OCITypeArrayByRef()

用途

参照配列を指定して型配列を取得します。

構文

sword OCITypeArrayByRef ( OCIEnv           *envhp,
                          OCIError         *errhp,
                          ub4              array_len,
                          const OCIRef     *type_ref[],
                          OCIDuration      pin_duration,
                          OCITypeGetOpt    get_option,
                          OCIType          *tdo[] );

パラメータ

envhp (IN/OUT)

オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、OCIEnvCreate()およびOCIInitialize()の説明を参照してください。

errhp (IN/OUT)

OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。

array_len (IN)

取り出されるschema_name/type_name/version_nameエントリの数です。

type_ref (IN)

取り出される型記述子オブジェクトの特定のバージョンを指し示すOCIRef*の配列です。この配列を指定する場合は、array_len個の要素が必要です。

pin_duration (IN)

取り出された型用の確保継続時間(たとえば、カレント・トランザクションの終わりまで)です。各オプションの説明は、oro.hを参照してください。

get_option (IN)

型をロードするためのオプションは、次のどちらかの値です。

tdo (OUT)

オブジェクト・キャッシュに確保された各型へのポインタ用出力配列です。これには、array_lenポインタ用の領域が必要です。OCIObjectGetObjectRef()を使用して、確保された各型記述子に対するCREFを取得します。

コメント

スキーマ/型名配列に対応付けられている既存の型のポインタを取得します。

この関数は、次の場合にエラーを戻します。

型の配列ではなく、単一の型を取り出すには、OCITypeByRef()を使用します。


注意:


この関数で取得されたTDO(TDOまたは表定義の配列)は、渡されたサービス・ハンドル(接続)に対応するキャッシュの論理パーティションに属します。TDOまたは表が論理パーティション間で使用される場合、動作は不明であり、リリースによって変化する可能性があります。

関連関数

OCITypeArrayByName()OCITypeByRef()OCITypeByName()


OCITypeByName()

用途

既存の型の最新バージョンを名前を指定して取得します。

構文

sword OCITypeByName ( OCIEnv               *env,
                      OCIError             *err,
                      const OCISvcCtx      *svc,
                      const OraText        *schema_name,
                      ub4                  s_length,
                      const OraText        *type_name,
                      ub4                  t_length,
                      const OraText        *version_name,
                      ub4                  v_length,
                      OCIDuration          pin_duration,
                      OCITypeGetOpt        get_option
                      OCIType              **tdo );

パラメータ

env (IN/OUT)

オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、OCIEnvCreate()およびOCIInitialize()の説明を参照してください。

err (IN/OUT)

OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。

svc (IN)

OCIサービス・ハンドルです。

schema_name (IN、オプション)

型に対応付けられているスキーマ名です。デフォルトでは、ユーザーのスキーマ名が使用されます。この文字列はすべて大文字であることが必要です。それ以外の場合は、内部エラーが発生してプログラムが停止します。

s_length (IN)

schema_name パラメータの長さ(バイト単位)です。

type_name (IN)

取得する型の名前です。この文字列はすべて大文字であることが必要です。それ以外の場合は、内部エラーが発生してプログラムが停止します。

t_length (IN)

type_name パラメータの長さ(バイト単位)です。

version_name (IN)

バージョン名は無視され、要求された型の最新バージョンが戻されます。リリース9.0.1以上は型の変更が可能であるため、それより前のリリースのアプリケーションで変更された型にアクセスすると、エラーが発生します。この場合は、新しい型定義を使用して、アプリケーションの変更、再コンパイルおよび再リンクを行う必要があります。

ユーザーが読取り可能な、型のバージョンです。最新のバージョンを取り出すには、(text *) 0を渡します。

v_length (IN)

version_nameのバイト単位の長さです。

pin_duration (IN)

確保継続時間です。

get_option (IN)

型をロードするためのオプションは、次のどちらかの値です。

tdo (OUT)

オブジェクト・キャッシュに確保された型へのポインタです。

コメント

この関数は、スキーマ/型名に対応付けられている既存の型へのポインタを取得します。必須パラメータにNULLがある場合、スキーマ/型名に対応付けられたオブジェクト型が存在しない場合、またはversion_nameが存在しない場合はエラーを戻します。


注意:


スキーマおよび型名は大/小文字が区別されます。SQLを使用して作成されている場合は、すべて大文字の文字列を使用する必要があります。すべて大文字でない場合、プログラムは停止します。

この関数では、常にサーバーへのラウンドトリップが発生するため、この関数を繰り返しコールして型を取得すると、パフォーマンスが大幅に低下する可能性があります。ラウンドトリップを最小限にするため、アプリケーションでは、型ごとにこの関数をコールし、型オブジェクトをキャッシュできます。

この関数によって取得した型を解放するには、OCIObjectUnpin()またはOCIObjectPinCountReset()をコールします。

OCITypeArrayByName()またはOCITypeArrayByRef()をコールすることにより、アプリケーションでTDOの配列を取り出せます。


注意:


この関数で取得されたTDO(TDOまたは表定義の配列)は、渡されたサービス・ハンドル(接続)に対応するキャッシュの論理パーティションに属します。TDOまたは表が論理パーティション間で使用される場合、動作は不明であり、リリースによって変化する可能性があります。

関連関数

OCITypeByRef()OCITypeArrayByName()OCITypeArrayByRef()


OCITypeByRef()

用途

参照を指定して型を取得します。

構文

sword OCITypeByRef ( OCIEnv          *env,
                     OCIError        *err,
                     const OCIRef    *type_ref,
                     OCIDuration     pin_duration,
                     OCITypeGetOpt   get_option,
                     OCIType         **tdo );

パラメータ

env (IN/OUT)

オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、OCIEnvCreate()およびOCIInitialize()の説明を参照してください。

err (IN/OUT)

OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()をコールして診断情報を取得します。

type_ref (IN)

取得する型記述子オブジェクトのバージョンを指し示すOCIRef*です。

pin_duration (IN)

取り出す型に対する、カレント・トランザクションの終了までの確保継続時間です。各オプションの説明は、oro.hを参照してください。

get_option (IN)

型をロードするためのオプションは、次のどちらかの値です。

tdo (OUT)

オブジェクト・キャッシュに確保された型へのポインタです。

コメント

OCITypeByRef()関数は、必須パラメータにNULLがある場合、エラーを戻します。


注意:


この関数で取得されたTDO(TDOまたは表定義の配列)は、渡されたサービス・ハンドル(接続)に対応するキャッシュの論理パーティションに属します。TDOまたは表が論理パーティション間で使用される場合、動作は不明であり、リリースによって変化する可能性があります。

関連関数

OCITypeByName()OCITypeArrayByName()OCITypeArrayByRef()