表19-2は、この項で説明しているコレクションおよびイテレータ関数を示しています。
表19-2 コレクションおよびイテレータ関数
関数 | 用途 |
---|---|
コレクションの最後に要素を追加します。 |
|
あるコレクションを別のコレクションに割り当てます(ディープ・コピーします)。 |
|
指定の要素値 |
|
要素へのポインタを取得します。 |
|
コレクションから要素の配列を取得します。 |
|
コレクションがロケータベースであるかどうかを示します。 |
|
コレクションの最大要素数を戻します。 |
|
コレクションのカレント・サイズ(要素数単位)を取得します。 |
|
コレクションから要素を切り捨てます。 |
|
VARRAY要素をスキャンするためのイテレータを作成します。 |
|
イテレータを削除します。 |
|
カレント・コレクション要素を取得します。 |
|
イテレータを初期化して指定のコレクションをスキャンします。 |
|
次のコレクション要素を取得します。 |
|
前のコレクション要素を取得します。 |
用途
コレクションの最後に要素を追加します。
構文
sword OCICollAppend ( OCIEnv *env, OCIError *err, const void *elem, const void *elemind, OCIColl *coll );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
与えられたコレクションの最後に追加される要素へのポインタです。
要素のNULL
インジケータ情報へのポインタです。(elemind
== NULL)の場合、追加された要素のNULL
インジケータ情報はNULL
以外に設定されます。
更新されたコレクションです。
コメント
要素を追加することは、要素ごとにコレクションのサイズを増加させて、最後の要素のデータを指定した要素のデータで更新(ディープ・コピー)することと同等です。この関数では、指定した要素elem
へのポインタは保存されません。つまり、elem
は厳密に入力パラメータになります。
要素が存在しない場合は、索引0でOCICollAppend()
によって要素が作成されます。PL/SQL索引付き表を結合する方法(配列結合)では、前提として索引は1から始まります。
戻り値
この関数は、コレクションのカレント・サイズが、要素を追加する前のコレクションの最大サイズ(上限)と等しい場合、エラーを戻します。また、この関数は、入力パラメータがNULL
である場合はエラーを戻します。
関連関数
用途
あるコレクションを別のコレクションに割り当てます(ディープ・コピーします)。
構文
sword OCICollAssign ( OCIEnv *env, OCIError *err, const OCIColl *rhs, OCIColl *lhs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
割当て元となる右側(ソース)コレクションです。
割当て先となる左側(ターゲット)コレクションです。
コメント
rhs
(ソース)をlhs
(ターゲット)に割り当てます。lhs
コレクションは、rhs
のサイズに応じて変更されます。lhs
コレクションに要素が格納されている場合は、割当てに先立ってその要素が削除されます。この関数はディープ・コピーを実行します。要素用のメモリーはオブジェクト・キャッシュから取られます。
戻り値
lhs
コレクションとrhs
コレクションの要素の型が一致しない場合はエラーが戻ります。lhs
コレクションの上限がrhs
コレクション内の現行の要素数より小さい場合もエラーが戻ります。次の場合にもエラーが戻されます。
入力パラメータがNULL
である場合
lhs
コレクションとrhs
コレクションの型が一致しない場合
lhs
コレクションの上限がrhs
コレクション内の現行の要素数より小さい場合
用途
指定の要素値elem
をcoll[index]
の要素に割り当てます。
構文
sword OCICollAssignElem ( OCIEnv *env, OCIError *err, sb4 index, const void *elem, const void *elemind, OCIColl *coll );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
要素の割当て先となる要素の索引です。
要素の割当て元となるソース要素です。パラメータelem
のデータ型とCデータ型がリストされている表15-1を参照してください。
要素のNULL
インジケータ情報へのポインタです。(elemind
== NULL
)の場合は、割り当てられた要素のNULL
インジケータ情報はNULL
以外に設定されます。
更新されるコレクションです。
コメント
コレクションの型がNESTED TABLEである場合は、要素が削除されているときと同様に、指定の索引位置に要素が存在しない場合があります。このような場合は、index
の位置に指定の要素が挿入されます。それ以外の場合は、index
の位置にある要素がelem
の値で更新されます。
指定の要素はディープ・コピーされること、およびelem
は厳密に入力パラメータであることに注意してください。
戻り値
この関数は、入力パラメータがNULL
であるか、または指定の索引が指定のコレクションの上限を超えている場合にエラーを戻します。
指定の索引位置にある要素へのポインタを取得します。
用途
指定の索引位置にある要素へのポインタを取得します。
構文
sword OCICollGetElem ( OCIEnv *env, OCIError *err, const OCIColl *coll, sb4 index, boolean *exists, void **elem, void **elemind );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、OCIEnvCreate()
、OCIEnvNlsCreate()
およびOCIInitialize()
(非推奨)の説明を参照してください。
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。
このコレクション内の要素へのポインタが戻されます。
ポインタが戻される要素の索引です。
指定した索引の要素が存在しない場合はFALSE
に設定されます。それ以外の場合はTRUE
に設定されます。
要素のアドレスが戻されます。
NULL
インジケータ情報のアドレスが戻されます。(elemind
== NULL
)の場合、NULL
インジケータ情報は戻されません。
コメント
指定の位置にある要素のアドレスを取得します。また、この関数は、オプションで要素のNULL
インジケータ情報のアドレスを戻します。
表19-3は、各OCI型コード値、要素ポインタ型、および対応するコレクション要素型を示しています。要素ポインタはOCICollGetElem()
のelem
パラメータによって戻されます。OCITypeCode
の値の完全なリストは、「オブジェクト・データ型のCへのマッピングについて」にあるオブジェクト型属性のオブジェクト・データ型マッピングの表を参照してください。
表19-3 要素ポインタ
OCITypeCodeの値 | *elemの設定 | 要素型 |
---|---|---|
OCI_TYPECODE_NUMBER |
|
Oracle |
OCI_TYPECODE_DATE |
|
日付( |
OCI_TYPECODE_TIMESTAMP |
|
日時( |
OCI_TYPECODE_INTERVAL_YM、OCI_TYPECODE_INTERVAL_DS |
|
間隔( |
OCI_TYPECODE_CHAR (n)、OCI_TYPECODE_NCHAR |
|
可変長文字列( |
OCI_TYPECODE_RAW |
|
可変長RAW ( |
OCI_TYPECODE_REF |
|
オブジェクト参照( |
OCI_TYPECODE_BLOB、OCI_TYPECODE_CLOB、OCI_TYPECODE_NCLOB |
|
LOBロケータ( |
OCI_TYPECODE_OBJECT |
|
オブジェクト型(personなど) |
OCI_TYPECODE_NAMEDCOLLECTION |
|
コレクション |
OCICollGetElem()
で戻される要素ポインタは、要素データにアクセスするためだけでなく、代入文のターゲット(左側)として機能するために使用できる書式です。
たとえば、要素型がオブジェクト参照(OCIRef*
)であるコレクションの要素を反復するとします。OCICollGetElem()
のコールにより、参照ハンドル(OCIRef**
)へのポインタが戻ります。コレクション要素へのポインタを取得した後、新しい参照を割り当てることでそれを修正できます。
次のコード例は、OCIRefAssign()
関数を使用してこれを実行する方法を示しています。
コレクション要素へのポインタへの新しい参照の割当て
sword OCIRefAssign( OCIEnv *env, OCIError *err, const OCIRef *source, OCIRef **target );
OCIRefAssign()
のtarget
パラメータの型はOCIRef**
であることに注意してください。したがってOCICollGetElem()
は、OCIRef**
を戻します。*target
がNULL
の場合は、OCIRefAssign()
によって新しいREF
が割り当てられ、target
パラメータに戻されます。
同様に、コレクション要素がタイプ文字列(OCIString*
)のものである場合、OCICollGetElem()
は文字列ハンドル(つまり、OCIString**
)へのポインタを戻します。OCIStringAssign()
またはOCIStringAssignText()
を介して新しい文字列を割り当てる場合、ターゲットの型はOCIString **
にしてください。
コレクションの要素型がOracle NUMBER
の場合、OCICollGetElem()
はOCINumber*
を戻します。次のコード例は、OCINumberAssign()
コールのプロトタイプを示しています。
OCINumberAssign()コールのプロトタイプ
sword OCINumberAssign(OCIError *err, const OCINumber *from, OCINumber *to);
戻り値
OCICollGetElem()
関数は、入力パラメータがNULL
である場合はエラーを戻します。
用途
開始索引の指定時にコレクションから要素の配列を取得します。
構文
sword OCICollGetElemArray ( OCIEnv *env, OCIError *err, const OCIColl *coll, sb4 index, boolean *exists, void **elem, void **elemind, uword *nelems );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
このコレクション内の要素へのポインタが戻されます。
この要素の開始索引です。
指定した索引の要素が存在しない場合はFALSE
に設定されます。それ以外の場合はTRUE
に設定されます。
要求する要素のアドレスが戻されます。
NULL
インジケータ情報のアドレスが戻されます。(elemind == NULL
)の場合、NULL
インジケータ情報は戻されません。
elem
およびelemind
両方に対するポインタの最大数です。
コメント
指定の位置から要素のアドレスを取得します。
整数コレクション順の索引の場合、OCICollGetElemArray()
は指定された索引から要素を取得しますが、プロセスの各要素に関する索引情報は失われます。ユーザーはその索引から要素データを配列として取得できますが、その配列内の各要素の索引は取得できません。この動作は、OCIIterCreate()、OCIIterDelete()、OCIIterGetCurrent()、OCIIterInit()、OCIIterNext()およびOCIIterPrev()の場合でも同様です。
戻り値
また、この関数は、オプションで要素のNULL
インジケータ情報のアドレスを戻します。
用途
コレクションがロケータベースであるかどうかを示します。
構文
sword OCICollIsLocator ( OCIEnv *env, OCIError *err, const OCIColl *coll, boolean *result );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
コレクション項目です。
コレクション項目がロケータベースである場合はTRUE
を戻します。それ以外の場合はFALSE
を戻します。
コメント
この関数は、コレクションがロケータベースであるかどうかを確認するためのテストを行います。
戻り値
コレクション項目がロケータベースである場合はresult
パラメータにTRUE
を戻します。それ以外の場合はFALSE
を戻します。
関連関数
用途
指定のコレクションの最大サイズを要素数単位で取得します。
構文
sb4 OCICollMax ( OCIEnv *env, const OCIColl *coll );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
要素の数が戻されるコレクションです。coll
パラメータは、有効なコレクション識別子を指し示している必要があります。
コメント
指定されたコレクションが保持できる要素の最大数を戻します。値0 (ゼロ)は、そのコレクションには上限がないことを示します。
負の索引をサポートしないコレクションの場合、最大の索引番号はコレクションの最大サイズでもあります。ただし、索引付き整数コレクションの場合、一部の要素は負の索引であることもあるため、このことは該当せず、最大の索引番号が付いた要素は最大コレクション・サイズと同じにはなりません。
戻り値
指定のコレクションの上限。
索引付き整数コレクションの場合は、戻り値は常に0 (ゼロ)になります(上限なし)。
用途
指定のコレクションのカレント・サイズを要素数単位で取得します。
構文
sword OCICollSize ( OCIEnv *env, OCIError *err, const OCIColl *coll sb4 *size );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
要素の数が戻されるコレクションです。有効なコレクション識別子を指し示している必要があります。
コレクション内の現行の要素数です。
コメント
指定されたコレクションの現行の要素数を戻します。ネストした表の場合、要素を削除してもこのカウントは減分されません。したがって、このカウントには要素を削除した際に作成された穴が含まれています。切捨て操作(OCICollTrim())は、切り捨てられた要素の数のみこのカウントを減分します。削除済の要素を差し引いたカウントを取得するには、OCITableSize()を使用します。
次の疑似コードで例をいくつか示します。
OCICollSize(...); // assume 'size' returned is equal to 5 OCITableDelete(...); // delete one element OCICollSize(...); // 'size' returned is still 5
削除済の要素を差し引いたカウントを取得するには、OCITableSize()を使用します。前述の例を続けます。
OCITableSize(...) // 'size' returned is equal to 4
切捨て操作(OCICollTrim())は、切り捨てられた要素の数のみこのカウントを減分します。前述の例を続けます。
OCICollTrim(..,1..); // trim one element OCICollSize(...); // 'size' returned is equal to 4
戻り値
OCICollSize()
関数は、コレクションのオブジェクト・キャッシュへのロード中にエラーが発生した場合、または入力パラメータがNULL
である場合にエラーを戻します。
用途
指定数の要素をコレクションの最後から切り捨てます。
構文
sword OCICollTrim ( OCIEnv *env, OCIError *err, sb4 trim_num, OCIColl *coll );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
切り捨てる要素数です。
trim_num
要素をコレクションcoll
の最後から削除(解放)します。
コメント
要素は、コレクションの末尾から削除されます。
戻り値
trim_num
がコレクションのカレント・サイズよりも大きい場合はエラーを戻します。
用途
要素またはコレクションをスキャンするためのイテレータを作成します。
構文
sword OCIIterCreate ( OCIEnv *env, OCIError *err, const OCIColl *coll, OCIIter **itr );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
スキャンするコレクションです。Oracle8i以上では、有効なコレクション型としてVARRAYとNESTED TABLEが含まれています。
割り当てられたコレクション・イテレータのアドレスは、この関数で戻されます。
コメント
イテレータは、オブジェクト・キャッシュの中に作成されます。イテレータは、コレクションの先頭を指し示すように初期化されます。
イテレータの作成直後にOCIIterNext()をコールした場合は、コレクションの最初の要素が戻ります。イテレータの作成直後にOCIIterPrev()をコールした場合は、「コレクションの先頭にいる」ことを示すエラーが戻ります。
索引付き整数コレクションの場合、OCIIterCreate()、OCIIterDelete()、OCIIterGetCurrent()、OCIIterInit()、OCIIterNext()およびOCIIterPrev()関数ではいずれも、コレクション内の各要素の索引は無視されます。つまり、OCIIterGetCurrent()では、要素値のみが戻され、要素の索引は戻されません。
戻り値
この関数は、入力パラメータがNULL
である場合はエラーを戻します。
用途
コレクション・イテレータを削除します。
構文
sword OCIIterDelete ( OCIEnv *env, OCIError *err, OCIIter **itr );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
割り当てられたコレクション・イテレータです。これは戻す前に破棄されNULL
に設定されます。
コメント
OCIIterCreate()のコールによって以前に作成されたイテレータを削除します。
索引付き整数コレクションの場合、OCIIterCreate()、OCIIterDelete()、OCIIterGetCurrent()、OCIIterInit()、OCIIterNext()およびOCIIterPrev()関数ではいずれも、コレクション内の各要素の索引は無視されます。つまり、OCIIterGetCurrent()では、要素値のみが戻され、要素の索引は戻されません。
戻り値
この関数は、入力パラメータがNULL
である場合はエラーを戻します。
用途
カレント・イテレータ・コレクション要素へのポインタを取得します。
構文
sword OCIIterGetCurrent ( OCIEnv *env, OCIError *err, const OCIIter *itr, void **elem, void **elemind );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
現在の要素を指し示すイテレータです。
イテレータが指し示した要素のアドレスが戻されます。パラメータelem
のデータ型とCデータ型がリストされている表15-1を参照してください。
要素のNULL
インジケータ情報のアドレスが戻されます。(elem_ind
== NULL)の場合、NULL
インジケータ情報は戻されません。
コメント
カレント・イテレータ・コレクション要素へのポインタとそれに対応するNULL
情報を戻します。
索引付き整数コレクションの場合、OCIIterCreate()、OCIIterDelete()、OCIIterGetCurrent()、OCIIterInit()、OCIIterNext()およびOCIIterPrev()関数ではいずれも、コレクション内の各要素の索引は無視されます。つまり、OCIIterGetCurrent()では、要素値のみが戻され、要素の索引は戻されません。
戻り値
この関数は、入力パラメータがNULL
である場合はエラーを戻します。
用途
コレクションをスキャンするためのイテレータを初期化します。
構文
sword OCIIterInit ( OCIEnv *env, OCIError *err, const OCIColl *coll, OCIIter *itr );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
スキャンするコレクションです。Oracle8i以上では、有効なコレクション型としてVARRAYとNESTED TABLEが含まれています。
割り当てられたコレクション・イテレータへのポインタです。
コメント
指定したイテレータが、指定したコレクションの先頭を指し示すように初期化します。この関数を使用して、次のいずれかのタスクを実行できます。
コレクションの先頭を指し示すようにイテレータをリセットします。
割当て済のイテレータを再利用して別のコレクションをスキャンします。
索引付き整数コレクションの場合、OCIIterCreate()、OCIIterDelete()、OCIIterGetCurrent()、OCIIterInit()、OCIIterNext()およびOCIIterPrev()関数ではいずれも、コレクション内の各要素の索引は無視されます。つまり、OCIIterGetCurrent()では、要素値のみが戻され、要素の索引は戻されません。
戻り値
入力パラメータがNULL
である場合はエラーを戻します。
関連関数
用途
次のイテレータ・コレクション要素へのポインタを取得します。
構文
sword OCIIterNext ( OCIEnv *env, OCIError *err, OCIIter *itr, void **elem, void **elemind, boolean *eoc);
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
次の要素を指し示すように更新されるイテレータです。
イテレータが次の要素を指し示すように更新された後に戻される、次の要素のアドレスです。パラメータelem
のデータ型とCデータ型がリストされている表15-1を参照してください。
要素のNULL
インジケータ情報のアドレスが戻されます。(elem_ind
== NULL
)の場合、NULL
インジケータ情報は戻されません。
イテレータがコレクションの最後にある(つまり、次の要素が存在しない)場合はTRUE
、それ以外の場合はFALSE
となります。
コメント
この関数は、次のイテレータ・コレクション要素へのポインタおよびそれに対応するNULL
情報を戻します。また、次の要素を指し示すようにイテレータを更新します。
この関数の実行前にイテレータがコレクションの最後の要素を指し示している場合は、この関数をコールするとeoc
フラグにTRUE
が設定されます。この場合、イテレータは更新されません。
索引付き整数コレクションの場合、OCIIterCreate()、OCIIterDelete()、OCIIterGetCurrent()、OCIIterInit()、OCIIterNext()およびOCIIterPrev()関数ではいずれも、コレクション内の各要素の索引は無視されます。つまり、OCIIterGetCurrent()では、要素値のみが戻され、要素の索引は戻されません。
戻り値
この関数は、入力パラメータがNULL
である場合はエラーを戻します。
用途
直前のイテレータ・コレクション要素へのポインタを取得します。
構文
sword OCIIterPrev ( OCIEnv *env, OCIError *err, OCIIter *itr, void **elem, void **elemind, boolean *boc );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
関連項目:
「OCIEnvCreate()」、「OCIEnvNlsCreate()」および「OCIInitialize()」(非推奨)
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()をコールして診断情報を取得します。
前の要素を指し示すように更新されるイテレータです。
イテレータが前の要素を指し示すように更新された後に戻される、前の要素のアドレスです。パラメータelem
のデータ型とCデータ型がリストされている表15-1を参照してください。
要素のNULL
インジケータ情報のアドレスが戻されます。(elemind
== NULL
)の場合、NULL
インジケータ情報は戻されません。
イテレータがコレクションの先頭にある(つまり、前の要素が存在しない)場合はTRUE
、それ以外の場合はFALSE
となります。
コメント
この関数は、前のイテレータ・コレクション要素へのポインタおよびそれに対応するNULL
情報を戻します。イテレータは、前の要素を指し示すように更新されます。
この関数の実行前にイテレータがコレクションの最初の要素を指し示している場合は、この関数をコールするとboc
にTRUE
が設定されます。この場合、イテレータは更新されません。
索引付き整数コレクションの場合、OCIIterCreate()、OCIIterDelete()、OCIIterGetCurrent()、OCIIterInit()、OCIIterNext()およびOCIIterPrev()関数ではいずれも、コレクション内の各要素の索引は無視されます。つまり、OCIIterGetCurrent()では、要素値のみが戻され、要素の索引は戻されません。
戻り値
この関数は、入力パラメータがNULL
である場合はエラーを戻します。