非推奨の文関数について説明します。
表E-3は、この項で説明している非推奨の文関数を示しています。
表E-3 非推奨の文関数
関数 | 用途 |
---|---|
問合せから行をフェッチします。 |
|
実行するSQL文またはPL/SQL文を準備します。 |
この関数は、Oracle 11g R2 (11.2)より前のリリースでは非推奨です。
用途
問合せから行をフェッチします。この関数は非推奨です。OCIStmtFetch2()を使用してください。
構文
sword OCIStmtFetch ( OCIStmt *stmtp, OCIError *errhp, ub4 nrows, ub2 orientation, ub4 mode );
パラメータ
文(アプリケーション要求)ハンドルです。
エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。
現行の位置からフェッチされる行数です。
リリース9.0より前で使用可能な値は、OCI_FETCH_NEXT
(デフォルト値)のみです。
OCI_DEFAULT
を渡します。
コメント
プリフェッチされた行で間に合う場合、フェッチ・コールはローカル・コールになります。ただしこれは、アプリケーションに対して透過的に行われます。
LOB列が読み取られる場合、LOBロケータに対して実行される後続のLOB操作のために、それらのロケータがフェッチされます。LONG
列の場合、プリフェッチはオフになります。
この関数は、次のエラーのいずれかが発生するとEOF
のOCI_NO_DATA
およびOCI_SUCCESS_WITH_INFO
を戻します。
ORA-24344 - 正常に終了しましたが、コンパイル・エラーがあります。
ORA-24345 - 切捨てまたはNULL
フェッチ・エラーが発生しました。
ORA-24347 - 警告: グループ関数にNULL
列があります。
nrows
パラメータに0 (ゼロ)を設定してOCIStmtFetch()
をコールした場合は、カーソルが取り消されます。
OCI_ATTR_ROWS_FETCHED
を使用して、最後のフェッチ・コールでユーザーのバッファに正常にフェッチされた行数を検索します。
用途
実行するSQL文またはPL/SQL文を準備します。
構文
sword OCIStmtPrepare ( OCIStmt *stmtp, OCIError *errhp, const OraText *stmt, ub4 stmt_len, ub4 language, ub4 mode );
パラメータ
実行対象の文に関連付けられた文ハンドルです。デフォルトでは、導出元の環境ハンドルのエンコーディング設定が含まれています。文をUTF-16エンコーディングで準備できるのは、UTF-16環境のみです。
エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。
実行されるSQL文またはPL/SQL文です。NULL
で終了する文字列にしてください。つまり、最後の文字は、エンコーディングによってはNULL
バイトの数値です。文は、OCIEnvNlsCreate()の直前のコールのcharset
パラメータで指定されたエンコーディングであることが必要です。
パラメータを必ず(text *)
にキャストしてください。文がUTF-16で準備されると、バインド・バッファと定義バッファのキャラクタ・セットは、UTF-16にデフォルト設定されます。
文の長さです。エンコーディングによって、文字数またはバイト数の単位になります。0(ゼロ)以外の値である必要があります。
V7構文またはネイティブ構文を指定します。有効な値は次のとおりです。
OCI_V7_SYNTAX
- V7 Oracle解析構文。
OCI_NTV_SYNTAX
- サーバーのバージョンに依存する構文。
OCIEnvCreate()コールのmode
に類似しています。ただし、このコールは必然的に継承されたモード設定を上書きできるため、優先度が高くなります。
可能な値はOCI_DEFAULT
(デフォルト・モード)またはOCI_PREP2_IMPL_RESULTS_CLIENT
です。このコールが外部プロシージャで作成され、暗黙的な結果を処理する必要がある場合、これらのモードはOCI_PREP2_IMPL_RESULTS_CLIENT
として渡される必要があります。詳細は、「暗黙的な結果のOCIサポート」を参照してください。文ハンドルstmtp
は、親の環境ハンドルに指定されている内容を使用します。
コメント
このコールは、OCIアプリケーションで実行するSQL文またはPL/SQL文を準備するために使用します。OCIStmtPrepare()
コールは、アプリケーション要求を定義します。
mode
パラメータは、文の内容がUTF-16でエンコーディングされているかどうかを判断します。文の長さは、コードポイント数またはバイト数で、エンコーディングによって異なります。
文ハンドルは、親の環境ハンドルからエンコーディング設定を継承しますが、このコールのmode
によって、文ハンドル自体のエンコーディング設定も変更できます。
後続のバインド・コールで初期化されるこの文のデータ値は、この文ハンドルの設定をデフォルトとして使用するバインド・ハンドル内に格納されます。
このコールは、この文ハンドルと特定のサーバー間の対応付けは作成しません。
DDL文を再実行する前に、この関数の2回目のコールを実行してください。
関連項目:
このコールの使用方法の詳細は、「文の準備について」を参照してください