プライマリ・コンテンツに移動
Oracle® Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72465-07
目次へ移動
目次
索引へ移動
索引

前
次

非推奨の文関数

非推奨の文関数について説明します。

表E-3は、この項で説明している非推奨の文関数を示しています。

表E-3 非推奨の文関数

関数 用途

OCIStmtFetch()

問合せから行をフェッチします。

OCIStmtPrepare()

実行するSQL文またはPL/SQL文を準備します。

OCIStmtFetch()

この関数は、Oracle 11g R2 (11.2)より前のリリースでは非推奨です。

用途

問合せから行をフェッチします。この関数は非推奨です。OCIStmtFetch2()を使用してください。

構文

sword OCIStmtFetch ( OCIStmt     *stmtp,
                     OCIError    *errhp, 
                     ub4          nrows,
                     ub2          orientation,
                     ub4          mode );

パラメータ

stmtp (IN)

文(アプリケーション要求)ハンドルです。

errhp (IN)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

nrows (IN)

現行の位置からフェッチされる行数です。

orientation (IN)

リリース9.0より前で使用可能な値は、OCI_FETCH_NEXT (デフォルト値)のみです。

mode (IN)

OCI_DEFAULTを渡します。

コメント

プリフェッチされた行で間に合う場合、フェッチ・コールはローカル・コールになります。ただしこれは、アプリケーションに対して透過的に行われます。

LOB列が読み取られる場合、LOBロケータに対して実行される後続のLOB操作のために、それらのロケータがフェッチされます。LONG列の場合、プリフェッチはオフになります。

この関数は、次のエラーのいずれかが発生するとEOFOCI_NO_DATAおよびOCI_SUCCESS_WITH_INFOを戻します。

  • ORA-24344 - 正常に終了しましたが、コンパイル・エラーがあります。

  • ORA-24345 - 切捨てまたはNULLフェッチ・エラーが発生しました。

  • ORA-24347 - 警告: グループ関数にNULL列があります。

nrowsパラメータに0 (ゼロ)を設定してOCIStmtFetch()をコールした場合は、カーソルが取り消されます。

OCI_ATTR_ROWS_FETCHEDを使用して、最後のフェッチ・コールでユーザーのバッファに正常にフェッチされた行数を検索します。

OCIStmtPrepare()

用途

実行するSQL文またはPL/SQL文を準備します。

構文

sword OCIStmtPrepare ( OCIStmt       *stmtp,
                       OCIError      *errhp,
                       const OraText *stmt, 
                       ub4           stmt_len,
                       ub4           language,
                       ub4           mode );

パラメータ

stmtp (IN)

実行対象の文に関連付けられた文ハンドルです。デフォルトでは、導出元の環境ハンドルのエンコーディング設定が含まれています。文をUTF-16エンコーディングで準備できるのは、UTF-16環境のみです。

errhp (IN)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

stmt (IN)

実行されるSQL文またはPL/SQL文です。NULLで終了する文字列にしてください。つまり、最後の文字は、エンコーディングによってはNULLバイトの数値です。文は、OCIEnvNlsCreate()の直前のコールのcharsetパラメータで指定されたエンコーディングであることが必要です。

パラメータを必ず(text *)にキャストしてください。文がUTF-16で準備されると、バインド・バッファと定義バッファのキャラクタ・セットは、UTF-16にデフォルト設定されます。

stmt_len (IN)

文の長さです。エンコーディングによって、文字数またはバイト数の単位になります。0(ゼロ)以外の値である必要があります。

language (IN)

V7構文またはネイティブ構文を指定します。有効な値は次のとおりです。

  • OCI_V7_SYNTAX - V7 Oracle解析構文。

  • OCI_NTV_SYNTAX - サーバーのバージョンに依存する構文。

    OCI_FOREIGN_SYNTAX - セッションのSQL翻訳プロファイルに従って翻訳される文を指定します。

mode (IN)

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回目のコールを実行してください。

関連項目:

このコールの使用方法の詳細は、「文の準備について」を参照してください