13.30 Statementクラス

Statementオブジェクトは、SQL文を実行するために使用します。この文は、結果セットを戻す問合せ文または更新カウントを戻す非問合せ文の場合があります。非問合せSQLには、INSERT文、UPDATE文またはDELETE文があります。非問合せSQL文には、DML文(CREATEやGRANTなど)やストアド・プロシージャ・コールもあります。

INSERT/UPDATE/DELETE文の問合せまたはストアド・プロシージャ・コール文には、INバインド・パラメータを指定できます。一方、ストアド・プロシージャ・コール文には、OUTバインド・パラメータ、またはIN/OUTパラメータと呼ばれるINOUT両方のバインド・パラメータを指定できます。

Statementクラスのメソッドは、3つのカテゴリに分類されます。

  • すべての文に適用可能なStatementメソッド

  • INバインド・パラメータ付きでプリペアド文に適用可能なメソッド

  • OUTまたはIN/OUTバインド・パラメータ付きのコール可能文に適用可能なメソッド

表13-43 Statementクラスで使用される列挙値

属性 オプション
Status
  • NEEDS_STREAM_DATAは、ストリーム化されたINバインド・パラメータに対して、出力Streamsを書き込む必要があることを示します。複数のストリーム・パラメータがある場合は、getCurrentStreamParam()メソッドをコールして、ストリームが必要なバインド・パラメータを確認します。文が繰り返し実行される場合は、getCurrentIteration()をコールして、繰り返して書込みが必要なストリームを確認します。

  • PREPAREDは、Statementオブジェクトが問合せに設定されていることを示します。

  • RESULT_SET_AVAILABLEは、getResultSet()メソッドをコールして結果セットを取得する必要があることを示します。

  • STREAM_DATA_AVAILABLEは、ストリーム化されたOUTバインド・パラメータに、入力Streamsを読み取る必要があることを示します。複数のストリーム・パラメータがある場合は、getCurrentStreamParam()メソッドをコールして、ストリームが必要なバインド・パラメータを確認します。文が繰り返し実行される場合は、getCurrentIteration()をコールして、繰り返して読取りが必要なストリームを確認します。

  • UPREPAREDは、Statementオブジェクトが問合せに設定されていないことを示します。

  • UPDATE_COUNT_AVAILABLEは、getUb8RowCount()メソッドをコールして更新カウントを確認する必要があることを示します。

表13-44 Statementメソッド

メソッド 説明

addIteration()

実行する反復を追加します。

closeResultSet()

自動リリースを待機せずに、結果セットのデータベースおよびOCCIリソースをただちに解放します。

closeStream()

パラメータstreamによって指定されたストリームをクローズします。

disableCaching()

文キャッシュを使用禁止にします。

execute()

SQL文を実行します。

executeArrayUpdate()

バインド・パラメータにsetDataBuffer()またはストリーム・インタフェースのみを使用するINSERT、UPDATEおよびDELETE文を実行します。

executeQuery()

単一のResultSetを戻すSQL文を実行します。

executeUpdate()

ResultSetを戻さないSQL文を実行します。

getAutoCommit()

現在の自動コミット状態を戻します。

getBatchErrorMode()

バッチ・エラー・モードの状態を戻します。

getBDouble()

IEEE754 DOUBLEの値をBDoubleオブジェクトで戻します。

getBfile()

BFILEの値をBfileオブジェクトで戻します。

getBFloat()

IEEE754 FLOATの値をBfloatオブジェクトで戻します。

getBlob()

BLOBの値をBlobオブジェクトで戻します。

getBytes()

SQL BINARYまたはVARBINARYパラメータの値をBytesで戻します。

getCharSet()

指定されたパラメータに有効なキャラクタ・セットをstringで戻します。

getCharSetUString()

指定されたパラメータに有効なキャラクタ・セットをUStringで戻します。

getClob()

CLOBの値をClobオブジェクトで戻します。

getConnection()

Statementオブジェクトがインスタンス化された元の接続を戻します。

getCurrentIteration()

処理中の現行の反復の反復番号を戻します。

getCurrentStreamIteration()

ストリーム・データの読取りまたは書込みを行う現行の反復を戻します。

getCurrentStreamParam()

読取りまたは書込みが必要な現行の出力ストリームのパラメータ索引を戻します。

getCursor()

OUTパラメータのREF CURSOR値をResultSetで戻します。

getDatabaseNCHARParam()

データがNCHARキャラクタ・セットにあるかどうかを戻します。

getDate()

パラメータの値をDateオブジェクトで戻します。

getDMLRowCounts()

現行のDML文が複数の反復で実行される場合、DML文の各反復で影響を受けた行数を戻します。

getDouble()

パラメータの値をC++のdouble型で戻します。

getBFloat()

パラメータの値をIEEE754のfloat型で戻します。

getFloat()

パラメータの値をC++のfloat型で戻します。

getInt()

パラメータの値をC++のint型で戻します。

getIntervalDS()

パラメータの値をIntervalDSオブジェクトで戻します。

getIntervalYM()

パラメータの値をIntervalYMオブジェクトで戻します。

getMaxIterations()

最大反復回数の現在の制限を戻します。

getMaxParamSize()

最大パラメータ・サイズの現在の制限を戻します。

getNumber()

パラメータの値をNumberオブジェクトで戻します。

getObject()

パラメータの値をPObjectオブジェクトで戻します。

getOCIStatement()

Statementに関連付けられているOCI文ハンドルを戻します。

getRef()

REFパラメータの値をRefAnyオブジェクトで戻します。

getResultSet()

現在の結果をResultSetで戻します。

getRowCountsOption()

DMLの行数オプションが有効になっているかどうかを決定します。

getRowid()

ROWIDパラメータの値をBytesオブジェクトで戻します。

getSQL()

Statementオブジェクトに関連付けられている現行のSQL文字列を戻します。

getSQLUString()

Statementオブジェクトに関連付けられている現行のSQL文字列を戻します。グローバリゼーション対応の場合です。

getStream()

パラメータの値をストリームで戻します。

getString()

パラメータの値を文字列で戻します。

getTimestamp()

パラメータの値をTimestampオブジェクトで戻します。

getUb8RowCount()

処理された行数を戻します。

getUInt()

パラメータの値をC++のunsigned int型で戻します。

getUpdateCount()

処理された行数を戻します。

getUString()

UStringの値を戻します。

getVector()

指定されたパラメータをベクターで戻します。

getVectorOfRefs()

現行の位置の列をREFのベクターで戻します。

isNull()

パラメータがNULLかどうかをチェックします。

isTruncated()

値が切り捨てられているかどうかをチェックします。

preTruncationLength()

切捨て前のパラメータの実際の長さを戻します。

registerOutParam()

OUTパラメータの型と最大サイズを登録します。

setAutoCommit()

自動コミット・モードを指定します。

setBatchErrorMode()

バッチ・エラー処理モードを使用可能または使用禁止にします。

setBDouble()

パラメータをIEEEのdouble型の値に設定します。

setBfile()

パラメータをBfile値に設定します。

setBFloat()

パラメータをIEEEのfloat型の値に設定します。

setBinaryStreamMode()

列をバイナリ・ストリームで戻すように指定します。

setBlob()

パラメータをBlob値に設定します。

setBytes()

パラメータをBytes配列に設定します。

setCharacterStreamMode()

列をキャラクタ・ストリームで戻すように指定します。

setCharSet()

キャラクタ・セットをstringで指定します。

setCharSetUString()

キャラクタ・セットをUStringで指定します。

setClob()

パラメータをClob値に設定します。

setDate()

パラメータをDate値に設定します。

setDatabaseNCHARParam()

データがデータベースのNCHARキャラクタ・セットにある場合はtrueを、デフォルトをリストアする場合はfalseを設定します。

setDataBuffer()

読取りまたは書込み可能なデータがあるデータ・バッファを指定します。

setDataBufferArray()

読取りまたは書込み可能なデータがあるデータ・バッファの配列を指定します。

setDouble()

パラメータをC++のdouble型の値に設定します。

setErrorOnNull()

NULL値の読取りに対する例外を使用可能または使用禁止にします。

setErrorOnTruncate()

切捨てが発生する際の例外を使用可能または使用禁止にします。

setFloat()

パラメータをC++のfloat型の値に設定します。

setInt()

パラメータをC++のint型の値に設定します。

setIntervalDS()

パラメータをIntervalDS値に設定します。

setIntervalYM()

パラメータをIntervalYM値に設定します。

setMaxIterations()

DML文に対して行われる起動の最大数を設定します。

setMaxParamSize()

パラメータとの間で受渡しできるデータの最大量を設定します。

setNull()

パラメータをSQLのNULLに設定します。

setNumber()

パラメータをNumber値に設定します。

setObject()

オブジェクトを使用してパラメータの値を設定します。

setPrefetchMemorySize()

サーバーへの各ラウンドトリップでフェッチしたデータを格納するために、OCCIによって繰り返し使用されるメモリー・サイズを設定します。

setPrefetchRowCount()

サーバーへの各ラウンドトリップで、OCCIによって繰り返しフェッチされる行数を設定します。

setRef()

パラメータの値を参照に設定します。

setRowCountsOption()

getDMLRowCounts()の起動時に、反復ごとのDML行数を戻せるように、flagTRUEを設定します。

setRowid()

バインドの位置に対して、ROWIDバイト配列を設定します。

setSQL()

新規SQL文字列をStatementオブジェクトに関連付けます。

setSQLUString()

新規SQL文字列をStatementオブジェクトに関連付けます。グローバリゼーション対応の場合です。

setString()

指定された索引のパラメータを設定します。

setTimestamp()

パラメータをTimestamp値に設定します。

setUInt()

パラメータをC++のunsigned int型の値に設定します。

setUString()

指定された索引のパラメータを設定します。グローバリゼーション対応の場合です。

setVector()

パラメータをunsigned int型のベクターに設定します。

setVectorOfRefs()

パラメータをベクターに設定します。このメソッドは、型がREFのコレクション型の場合に必要です。

status()

文の現在のステータスを戻します。このステータスは、書き込むストリーム・データがある場合に役立ちます。

13.30.1 addIteration()

設定パラメータを指定した後、実行する反復を追加します。

構文

void addIteration();

13.30.2 closeResultSet()

結果セットが必要ない場合、指定されたresultSetのデータベースおよびOCCIリソースをただちに解放します。

構文

void closeResultSet(
   ResultSet *resultSet);
パラメータ 説明
resultSet

クローズする結果セットを指定します。現行の文でgetResultSet()executeQuery()またはgetCursor()メソッドをコールした結果、またはこの文の別の結果セットのgetCursor()コールによる結果を指定できます。

13.30.3 closeStream()

パラメータstreamによって指定されたストリームをクローズします。

構文

void closeStream(
   Stream *stream); 
パラメータ 説明
stream

クローズするストリームを指定します。

13.30.4 disableCaching()

文キャッシュを使用禁止にします。文をキャッシュせずに破棄する必要がある場合に使用します。文キャッシュが使用可能になっている場合にのみ有効です。

構文

void disableCaching();

13.30.5 execute()

結果セットまたは更新数のいずれかを返すSQL文を実行します。文は書込みが必要な読取り可能ストリームを持つことがあり、その場合には、実行結果がすぐには取得できない可能性があります。戻り値Statusは、表13-43の定義を参照してください。

出力ストリームがOUTバインド変数に使用されている場合、その出力ストリームは順に従って完全に読み取る必要があります。getCurrentStreamParam()メソッドは、読み取る必要があるストリームを示します。同様に、getCurrentIteration()は、データの準備ができている反復を示します。

構文 説明
Status execute(
   const string &sql="");

SQL文を実行します。

Status execute(
   const UString &sql);

SQL文を実行します。グローバリゼーション対応の場合です。

パラメータ 説明
sql

実行するSQL文を指定します。executeArrayUpdate()メソッドを使用してSQLと文を関連付けた場合は、NULLを指定できます。

13.30.6 executeArrayUpdate()

バインド・パラメータにsetDataBuffer()またはストリーム・インタフェースのみを使用するINSERT/UPDATE/DELETE文を実行します。このバインド・パラメータは、サイズ配列であるarrayLengthパラメータです。この文には、書き込む必要がある書込み可能なストリームが含まれている場合があります。戻り値Statusは、表13-43の定義を参照してください。

出力ストリームがOUTバインド変数に使用されている場合、その出力ストリームは順に従って完全に読み取る必要があります。getCurrentStreamParam()メソッドは、読み取る必要があるストリームを示します。同様に、getCurrentIteration()は、データの準備ができている反復を示します。

配列実行は、問合せ文またはコール可能文に対しては実行できません。

構文

Status executeArrayUpdate(
   unsigned int arrayLength);
パラメータ 説明
arrayLength

バインド変数の各バッファに指定する要素数を指定します。

13.30.7 executeQuery()

ResultSetを戻すSQL文を実行します。ストリーム・パラメータを持つ問合せではない文に対しては、コールしないでください。問合せによって作成されたデータが含まれたResultSetを戻します。

構文 説明
ResultSet* executeQuery(
   const string &sql="");

単一のResultSetを戻すSQL文を実行します。

ResultSet* executeQuery(
   const UString &sql);

単一のResultSetを戻すSQL文を実行します。グローバリゼーション対応の場合です。

パラメータ 説明
sql

実行するSQL文を指定します。executeArrayUpdate()メソッドを使用してSQLと文を関連付けた場合は、NULLを指定できます。

13.30.8 executeUpdate()

SQLのINSERT文、UPDATE文、DELETE文などの非問合せ文、CREATE/ALTERなどのDDL文またはストアド・プロシージャ・コールを実行します。INSERTUPDATEまたはDELETEの場合は行カウントを、戻りがないSQL文の場合は0 (ゼロ)を戻します。

このコールの結果として処理された行数がUB4MAXVALを超えた場合、例外が発生する場合があります。このようなシナリオでは、かわりに、execute()の後にgetUb8RowCount()を使用して、処理した行数を取得します。

構文 説明
unsigned int executeUpdate(
   const string &sql="");

非問合せ文を実行します。

unsigned int executeUpdate(
   const UString &sql);

非問合せ文を実行します。グローバリゼーション対応の場合です。

パラメータ 説明
sql

実行するSQL文を指定します。executeArrayUpdate()メソッドを使用してSQLと文を関連付けた場合は、NULLを指定できます。

13.30.9 getAutoCommit()

現在の自動コミット状態を戻します。

構文

bool getAutoCommit() const;

13.30.10 getBatchErrorMode()

バッチ・エラー・モードの状態を戻します。有効な場合にはTRUEが、無効な場合はFALSEが戻されます。

構文

bool getBatchErrorMode() const;

13.30.11 getBDouble()

OUTバインドとして定義されているIEEE754のDOUBLE列の値を取得します。値がSQL NULLの場合は0

構文

BDouble getBDouble(
   unsigned int paramIndex) = 0;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.12 getBfile()

BFILEパラメータの値をBfileオブジェクトで戻します。

構文

Bfile getBfile(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.13 getBFloat()

OUTバインドとして定義されているIEEE754のFLOAT列の値を取得します。値がSQL NULLの場合は0

構文

BFloat getBFloat(
   unsigned int paramIndex) = 0;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.14 getBlob()

BLOBパラメータの値をBlobで戻します。

構文

Blob getBlob(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.15 getBytes()

SQL BINARYまたはVARBINARYパラメータの値をBytesで戻します。値がSQLのNULLの場合、結果はNULLです。

構文

Bytes getBytes(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.16 getCharSet()

指定されたパラメータに有効なキャラクタ・セットをstringで戻します。

構文

string getCharSet(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.17 getCharSetUString()

指定されたパラメータに有効なキャラクタ・セットをUStringで戻します。

構文

UString getCharSetUString(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.18 getClob()

CLOBパラメータの値をClobオブジェクトで取得します。パラメータの値を戻します。

構文

Clob getClob(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.19 getConnection()

Statementオブジェクトがインスタンス化された元の接続を戻します。

構文

Connection* getConnection() const;

13.30.20 getCurrentIteration()

プリペアド文に出力Streamsがない場合、このメソッドは、OCCIで処理中の文の現在の反復を戻します。一連の反復ですべてのコールが処理された後に、このメソッドがコールされた場合は、0 (ゼロ)を戻します。処理中の現行の反復の反復番号を戻します。最初の反復の番号は1、2回目の反復の番号は2のようになります。文の実行が終了した場合は、0 (ゼロ)を戻します。

構文

unsigned int getCurrentIteration() const;

13.30.21 getCurrentStreamIteration()

データの準備ができている現在のパラメータ・ストリームを戻します。

構文

unsigned int getCurrentStreamIteration() const;

13.30.22 getCurrentStreamParam()

書込みが必要な現行の出力Streamパラメータのパラメータ索引を戻します。プリペアド文に出力Streamパラメータがある場合、このメソッドは書込みが必要な現行の出力Streamのパラメータ索引を戻します。出力Streamへの書込みが不要な場合、またはプリペアド文に出力Streamパラメータがない場合、このメソッドは0 (ゼロ)を戻します。

構文

unsigned int getCurrentStreamParam() const;

13.30.23 getCursor()

OUTパラメータのREF CURSOR値をResultSetで取得します。この結果セットからデータをフェッチできます。OUTパラメータは、registerOutParam()メソッドを使用してCURSORとして登録する必要があります。OUTパラメータの値に対してResultSetを1つ戻します。

バッチ・コールのために戻されるREF CURSORが複数ある場合は、カーソルからのデータを完全にフェッチしてから次のREF CURSORを取得してフェッチを開始するようにする必要があります。

構文

ResultSet * getCursor(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.24 getDatabaseNCHARParam()

データがNCHARキャラクタ・セットにあるかどうかを戻します。

構文

bool getDatabaseNCHARParam(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.25 getDate()

SQL DATEパラメータの値をDateオブジェクトとして取得します。パラメータの値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Date getDate(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.26 getDMLRowCounts()

現行のDML文が複数の反復で実行される場合、DML文の各反復で影響を受けた行数を戻します。

このメソッドは、getRowCountsOption()およびsetRowCountsOption()と組み合せて使用します。

構文

vector<oraub8> getDMLRowCounts();

13.30.27 getDouble()

DOUBLEパラメータの値をC++のdouble型で取得します。パラメータの値を戻します。値がSQL NULLの場合、結果は0になります。

構文

double getDouble(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.28 getFloat()

FLOATパラメータの値をC++のfloat型で取得します。パラメータの値を戻します。値がSQL NULLの場合、結果は0になります。

構文

float getFloat(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.29 getInt()

INTEGERパラメータの値をC++のint型で取得します。パラメータの値を戻します。値がSQL NULLの場合、結果は0になります。

構文

unsigned int getInt(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.30 getIntervalDS()

パラメータの値をIntervalDSオブジェクトで取得します。

構文

IntervalDS getIntervalDS(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.31 getIntervalYM()

パラメータの値をIntervalYMオブジェクトで取得します。

構文

IntervalYM getIntervalYM(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.32 getMaxIterations()

最大反復回数の現在の制限を取得します。デフォルトは1です。現在の最大反復回数を戻します。

構文

unsigned int getMaxIterations() const;

13.30.33 getMaxParamSize()

maxParamSizeリミット(バイト数)は、いずれかのパラメータ値に対して送信されるデータまたは戻されるデータの最大数です。文字型およびバイナリ型のみに適用されます。制限値を超えたデータは通知なしに破棄されます。maxパラメータ・サイズの現在の制限を戻します。

構文

unsigned int getMaxParamSize(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.34 getNumber()

NUMERICパラメータの値をNumberオブジェクトとして取得します。パラメータの値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Number getNumber(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.35 getObject()

パラメータの値をPObjectオブジェクトで取得します。このメソッドはregisterOutParam()を使用して、このパラメータに登録されたSQLの型に対応する型のPObjectを戻します。OUTパラメータの値を保持しているPObjectを1つ戻します。

このメソッドは、データベース固有の抽象データ型を読み取るために使用できます。

構文

PObject * getObject(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.36 getOCIStatement()

Statementに関連付けられているOCI文ハンドルを取得します。

構文

OCIStmt * getOCIStatement() const;

13.30.37 getRef()

REFパラメータの値をRefAnyオブジェクトで取得します。パラメータの値を戻します。

構文

RefAny getRef(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.38 getResultSet()

現在の結果をResultSetで戻します。

構文

ResultSet * getResultSet();

13.30.39 getRowCountsOption()

DMLの行数オプションが有効になっているかどうかを決定します。

TRUEの場合、DML文を実行し、getDMLRowCounts()メソッドを使用して、反復ごとの行数を戻すことができます。

構文

bool getRowCountsOption();

13.30.40 getRowid()

rowidパラメータの値をBytesで取得します。

構文

Bytes getRowid(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.41 getSQL()

Statementオブジェクトに関連付けられている現行のSQL文字列を戻します。

構文

string getSQL() const;

13.30.42 getSQLUString()

Statementオブジェクトに関連付けられている現行のSQL UStringを戻します。グローバリゼーション対応の場合です。

構文

UString getSQLUString() const;

13.30.43 getStream()

パラメータの値をストリームで戻します。

構文

Stream * getStream(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.44 getString()

CHARVARCHARまたはLONGVARCHARパラメータの値を文字列として取得します。パラメータの値を戻します。値がSQL NULLの場合、結果は空の文字列になります。

構文

string getString(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.45 getTimestamp()

SQL TIMESTAMPパラメータの値をTimestampオブジェクトとして取得します。パラメータの値を戻します。値がSQL NULLの場合、結果はNULLになります

構文

Timestamp getTimestamp(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.46 getUb8RowCount()

DML文の実行によって影響を受けた行数を戻します。

このメソッドにより、Oracle Databaseリリース12cより前のリリースで戻せた行数よりも多くの行数を戻せるようになりました。

構文

oraub8 getUb8RowCount();

13.30.47 getUInt()

BIGINTパラメータの値をC++のunsigned int型で取得します。パラメータの値を戻します。値がSQL NULLの場合、結果は0になります。

構文

unsigned int getUInt(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.48 getUpdateCount()

DML文を実行した場合、影響を受けた行数を戻します。

注意: このメソッドは非推奨になりました。かわりに、getUb8RowCount()を使用します。

構文

unsigned int getUpdateCount() const;

13.30.49 getUString()

値をUStringで戻します。

このメソッドをコールする必要があるのは、環境のキャラクタ・セットがUTF16の場合、またはUTF16データを明示的に取得するためにsetCharset()メソッドがコールされている場合のみです。

構文

UString getUString(
   unsigned int paramIndex);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.50 getVector()

現行の位置の列をベクターで戻します。位置の列は、索引で指定し、コレクション型(VARRAYまたはネストした表)であることが必要です。コレクション内の要素のSQL型は、ベクターの型との互換性が必要です。

構文 説明
void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   std::vector<UString> &vect);

UString Classのベクターに使用します。グローバリゼーション対応の場合です。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<BDouble> &vect);

BDoubleのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<BFile> &vect);

Bfileクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<BFloat> &vect);

BFloatのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Blob> &vect);

Blobクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Bytes> &vect); 

Bytesクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Clob> &vect);

Clobのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Date> &vect);

Dateクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<double> &vect);

doubleクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<float> &vect);

floatクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<int> &vect);

intクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<IntervalDS> &vect);

IntervalDSクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<IntervalYM> &vect);

IntervalYMクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Number> &vect);

Numberクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<RefAny> &vect);

RefAnyクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<string> &vect);

stringクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<T *> &vect);

この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームで使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<T> &vect);

この構文は、Windows NTおよびz/OSなど、関数テンプレートの一部の順序付けがサポートされていないプラットフォームで使用します。OUTバインド用です。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Timestamp> &vect);

Timestampクラスのベクターに使用します。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<u <Ref<T> > &vect);

この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームでのみ使用できます。

void getVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<unsigned int> &vect);

unsigned intクラスのベクターに使用します。

パラメータ 説明
stmt

文を指定します。

paramIndex

パラメータ索引を指定します。

vect

値が取得されるベクター(OUTパラメータ)への参照を指定します。

13.30.51 getVectorOfRefs()

このメソッドは、現行の位置の列をREFのベクターで戻します。列はREFのコレクション型(VARRAYまたはネストした表)であることが必要です。OUTバインドで使用します。

構文

void getVectorOfRefs(
   Statement *stmt,
   unsigned int colIndex,
   vector< Ref<T> > &vect);
パラメータ 説明
stmt

文オブジェクトを指定します。

colIndex

列の索引を、第1列は1、第2列は2のように指定します。

vect

REFのベクター(OUTパラメータ)への参照を指定します。Ref<T>に対しては、特化した関数のgetVector()ではなく、getVectorOfRefs()の使用をお薦めします。

13.30.52 isNull()

OUTパラメータがSQL NULLの値を持つことがあります。isNull()は、読み取った最後の値がこの特別な値であるかどうかをレポートします。まず、パラメータでgetxxx()をコールしてその値を読み取り、その後にisNull()をコールしてその値がSQL NULLであるかどうかを調べる必要があることに注意してください。読み取った最後のパラメータがSQL NULLであった場合にTRUEを返します。

構文

bool isNull(
   unsigned int paramIndex ) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.53 isTruncated()

このメソッドは、パラメータの値が切り捨てられているかどうかをチェックします。パラメータの値が切り捨てられている場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isTruncated(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.54 preTruncationLength()

切捨て前のパラメータの実際の長さを戻します。

構文

int preTruncationLength(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

13.30.55 registerOutParam()

このメソッドは、PL/SQLストアド・プロシージャの各outパラメータのtypeを登録します。PL/SQLストアド・プロシージャを実行する前に、このメソッドを明示的にコールして各outパラメータのtypeを登録する必要があります。このメソッドは、outパラメータに対してのみコールします。IN/OUTパラメータの場合はsetxxx()メソッドを使用します。

  • outパラメータの値を読み取る場合は、登録されているパラメータのSQL型に対応するgetxxx()メソッドを使用する必要があります。たとえば、指定されている型がOCCIINTまたはOCCINumberの場合は、getIntまたはgetNumberを使用します。

  • PL/SQLストアド・プロシージャにROWIDoutパラメータがある場合、このメソッドに指定するtypeにはOCCISTRINGを指定します。outパラメータの値は、getString()メソッドをコールして取得できます。

  • PL/SQLストアド・プロシージャにROWID型のIN/OUTパラメータがある場合は、setString()メソッドとgetString()メソッドをコールして、型を設定し、IN/OUTパラメータの値を取得します。

構文 説明
void registerOutParam(
   unsigned int paramIndex,
   Type type,
   unsigned int maxSize=0,
   const string &sqltype="");

PL/SQLストアド・プロシージャの各outパラメータのtypeを登録します。

void registerOutParam(
   unsigned int paramIndex,
   Type type,
   unsigned int maxSize,
   const string typName,
   const string &schName);

PL/SQLストアド・プロシージャの各outパラメータのtypeを登録します(stringのサポートの場合)。

void registerOutParam(
   unsigned int paramIndex,
   Type type,
   unsigned int maxSize,
   const UString &typName,
   const UString &schName);

PL/SQLストアド・プロシージャの各outパラメータのtypeを登録します。グローバリゼーション対応またはUStringのサポートの場合です。

パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

type

typeによって定義されるSQL型コードです。DateBytesなどのOCCIデータ型に対応するデータ型のみです。

maxSize

取得する値の最大サイズを指定します。OCCIBYTESデータ型およびOCCISTRINGデータ型の場合、maxSize0 (ゼロ)より大きい値です。

sqltype

データベースの型名を指定します(CREATE TYPEで作成した型を使用します)。

typName

型の名前です。

schName

スキーマ名を指定します。

13.30.56 setAutoCommit()

Statementを自動コミット・モードにできます。この場合、実行済の文も自動的にコミットされます。デフォルトでは、自動コミットモードはオフです。

構文

void setAutoCommit(
   bool autoCommit);
パラメータ 説明
autoCommit

TRUEは自動コミット使用可能、FALSEは自動コミット使用禁止です。

13.30.57 setBatchErrorMode()

バッチ・エラー処理モードを使用可能または使用禁止にします。

構文

virtual void setBatchErrorMode(
   bool batchErrorMode);
パラメータ 説明
batchErrorMode

TRUEによりバッチ・エラー処理が使用可能になり、FALSEにより使用禁止になります。

13.30.58 setBDouble()

IEEE754のdouble型を、paramIndex属性で指定された位置にあるStatementオブジェクトへのバインド値として設定します。

構文

void setBDouble(
   unsigned int paramIndex,
   const BDouble &dval);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

dval

パラメータの値を指定します。

13.30.59 setBfile()

パラメータをBfile値に設定します。

構文

void setBfile(
   unsigned int paramIndex,
   const Bfile &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.60 setBFloat()

IEEE754のfloat型を、paramIndex属性で指定された位置にあるStatementオブジェクトへのバインド値として設定します。

構文

void setBFloat(
   unsigned int paramIndex,
   const BFloat &fval);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

fval

パラメータの値を指定します。

13.30.61 setBinaryStreamMode()

列をバイナリ・ストリームで戻すように定義します。

構文 説明
void setBinaryStreamMode(
   unsigned int colIndex,
   unsigned int size);

バイナリ・ストリームで戻す列を設定します。

void setBinaryStreamMode(
   unsigned int colIndex,
   unsigned int size
   bool inArg);

バイナリ・ストリームで戻す列を設定します。バインド位置にPL/SQLのINまたはIN/OUT引数がある場合に使用します。

パラメータ 説明
colIndex

列の索引を、第1列は1、第2列は2のように指定します。

size

バイナリStreamで読み取られたり、戻されるデータ量を指定します。これは、32KB (32,768バイト)に制限されています。

inArg

バインド位置がPL/SQLのINまたはIN/OUT引数の場合はTRUEを渡します。

13.30.62 setBlob()

パラメータをBlob値に設定します。

構文

void setBlob(
   unsigned int paramIndex,
   const Blob &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.63 setBytes()

パラメータをBytes配列に設定します。

構文

void setBytes(
   unsigned int paramIndex,
   const Bytes &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.64 setCharacterStreamMode()

列をキャラクタ・ストリームで戻すように定義します。

構文 説明
void setCharacterStreamMode(
   unsigned int colIndex,
   unsigned int size);

キャラクタ・ストリームで戻す列を設定します。

void setCharacterStreamMode(
   unsigned int colIndex,
   unsigned int size,
   bool inArg);

キャラクタ・ストリームで戻す列を設定します。バインド位置にPL/SQLのINまたはIN/OUT引数がある場合に使用します。

パラメータ 説明
colIndex

列の索引を、第1列は1、第2列は2のように指定します。

size

キャラクタStreamで読み取られたり、戻されるデータ量を指定します。

inArg

バインド位置がPL/SQLのINまたはIN/OUT引数の場合はTRUEを渡します。

13.30.65 setCharSet()

指定されたパラメータのデフォルトのキャラクタ・セットを上書きします。データは、指定されたキャラクタ・セットにあるとみなされ、データベース・キャラクタ・セットに変換されます。OUTバインドの場合、これは、データベース・キャラクタの変換先のキャラクタ・セットを指定します。

構文

void setCharSet(
   unsigned int paramIndex,
   string &charSet);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

charSet

選択したキャラクタ・セットを文字列で指定します。

13.30.66 setCharSetUString()

指定されたパラメータのデフォルトのキャラクタ・セットを上書きします。データは、指定されたキャラクタ・セットにあるとみなされ、データベース・キャラクタ・セットに変換されます。OUTバインドの場合、これは、データベース・キャラクタの変換先のキャラクタ・セットを指定します。

構文

void setCharSetUString(
   unsigned int paramIndex,
   const UString& charSet); 
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

charSet

選択したキャラクタ・セットをUStringで指定します。

13.30.67 setClob()

パラメータをClob値に設定します。

構文

void setClob(
   unsigned int paramIndex,
   const Clob &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.68 setDate()

パラメータをDate値に設定します。

構文

void setDate(
   unsigned int paramIndex,
   const Date &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.69 setDatabaseNCHARParam()

データベースのNCHARキャラクタ・セットのデータが含まれている列にパラメータを挿入する場合は、TRUE値を渡すことによって、そのことをOCCIに通知する必要があります。FALSEを渡してデフォルトに戻すことができます。Returnsは指定されたパラメータに有効なキャラクタ・セットを返します。

構文

void setDatabaseNCHARParam(
   unsigned int paramIndex,
   bool isNCHAR);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

isNCHAR

このパラメータに、データベースのNCHARキャラクタ・セットのデータが含まれている場合はTRUEを、それ以外の場合はFALSEを戻します。

13.30.70 setDataBuffer()

データが使用可能なデータ・バッファを指定します。コール可能文のOUTバインド・パラメータにも使用されます。

このbufferパラメータは、ユーザーが割り当てたデータ・バッファへのポインタです。データの現在の長さをlengthパラメータに指定する必要があります。データ量は、sizeパラメータを超えないようにします。typeには、データのデータ型を指定します。

すべてのtypeがバッファに指定できるわけではありません。たとえば、OCCIに割り当てられているすべての型(BytesDateなど)はsetDataBuffer()インタフェースでは指定できません。同様に、C++標準ライブラリ文字列は、setDataBuffer()インタフェースでは提供できません。typeは、VARCHAR2CSTRINGCHARZなどのOCIデータ型にできます。

反復実行や配列実行で、setDataBuffer()を使用してデータを指定する場合は、最初の反復のみで1回のみコールする必要があります。後続の反復で、OCCIは、データの位置をbuffer +(i*size) (iは反復番号)であるとみなします。同様に、データの長さは、(length+i)とみなされます。

32Kのlengthパラメータを使用するこのメソッドのバージョンの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

構文 説明
void setDataBuffer(
   unsigned int paramIndex,
   void *buffer,
   Type type,
   sb4 size,
   ub2 *length,
   sb2 *ind = NULL,
   ub2 *rc= NULL);

ub2 lengthバッファを使用します。これにより、VARCHAR2NVARCHAR2の長さが4,000バイトに制限され、RAWデータ型が2,000バイトに制限されます。

void setDataBuffer(
   unsigned int paramIndex,
   void *buffer,
   Type type,
   sb4 size,
   ub4 *length,
   sb2 *ind = NULL,
   ub2 *rc= NULL);

ub4 lengthバッファ(32K)を使用します。これにより、VARCHAR2NVARCHAR2およびRAWデータ型の長さが増加します。

パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

buffer

ユーザーが割り当てたバッファへのポインタを指定します。反復実行または配列実行が行われる場合、バッファにはnumIterations()でのsizeのバイト数が必要です。配列フェッチが行われる場合、バッファにはnumRows * sizeのバイト数が必要です。収集または分散のバインドおよび定義が行われる場合、この構造には、OCIIOVecのアドレスおよびそのアドレスで開始されるOCIIOVec要素の数が格納されます。

type

バッファに入る(取得する)データの型を指定します。

size

データ・バッファのサイズを指定します。反復実行および配列実行の場合、このサイズはデータ項目の各要素のサイズです。収集または分散のバインドおよび定義の場合、このサイズはbufferが指すOCIIOVecArrayのサイズです。modeIOVECに設定する必要があります。

length

バッファのデータ長へのポインタを指定します。反復実行や配列実行の場合、データ長は各バッファ要素に対する長さデータの配列です。配列のサイズはarrayLength()と等しくしてください。

ind

インジケータを指定します。反復実行および配列実行の場合、インジケータはすべてのバッファ要素に対するものです。

rc

コードを戻します。反復実行および配列実行の場合、リターン・コードはすべてのバッファ要素に対するものです。

13.30.71 setDataBufferArray()

読取りまたは書込み可能なデータがあるデータ・バッファの配列を指定します。配列パラメータの読込み/書込みを行うストアド・プロシージャのINOUTおよびIN/OUTバインド・パラメータに使用します。

  • ストアド・プロシージャは、ININ/OUTまたはOUTパラメータの値の配列を保持できます。この場合、パラメータはsetDataBufferArray()メソッドを使用して指定する必要があります。配列は、反復実行や配列実行に対するsetDataBuffer()メソッドと同じように指定されますが、配列の要素数は*arrayLengthパラメータによって決まります。

  • OUTパラメータおよびIN/OUTパラメータの場合、配列の要素数の最大値はarraySizeパラメータによって指定されます(返されます)。クライアントは、bufferにsize *arraySize分のバイトが割り当てられていることを確認する必要があります。繰り返しプリコンパイルされた文では配列の要素数は反復回数によって決まり、配列実行では配列の要素数はexecuteArrayUpdate()メソッドのarrayLengthパラメータによって決まります。ただし、ストアド・プロシージャの配列パラメータでは、各パラメータはサイズの異なる配列である可能性があるため、配列の要素数はsetDataBufferArray()メソッドのarrayLength パラメータで指定する必要があります。

  • この指定方法はプリペアド文の場合と異なります。反復実行および配列実行の場合、各パラメータの配列の要素数は同じであり、要素の数は文の反復数によって決まります。ただし、コール可能文は1回のみ実行され、それぞれのパラメータは、長さの異なる可変長の配列である可能性があります。

  • 32KのelementLengthパラメータを使用するこのメソッドのバージョンの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

構文 説明
void setDataBufferArray(
   unsigned int paramIndex,
   void *buffer,
   Type type,
   ub4 arraySize,
   ub4 *arrayLength,
   sb4 elementSize,
   ub2 *elementLength,
   sb2 *ind = NULL,
   ub2 *rc = NULL);

ub2 elementLengthバッファを使用します。これにより、VARCHAR2NVARCHAR2の長さが4,000バイトに制限され、RAWデータ型が2,000バイトに制限されます。

void setDataBufferArray(
  unsigned int paramIndex,
  void *buffer,
  Type type,
  ub4 arraySize,
  ub4 *arrayLength,
  sb4 elementSize,
  ub4 *elementLength,
  sb2 *ind = NULL,
  ub2 *rc = NULL);

ub4 elementLengthバッファ(32K)を使用します。これにより、VARCHAR2NVARCHAR2およびRAWデータ型の長さが増加します。

パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

buffer

ユーザーが割り当てたバッファへのポインタを指定します。これにはsize * arraySize分のバイトが必要です。収集または分散のバインドおよび定義が行われる場合、この構造には、OCIIOVecのアドレスおよびそのアドレスで開始されるOCIIOVec要素の数が格納されます。

type

バッファに入る(取得する)データの型を指定します。

arraySize

配列の最大要素数を指定します。

arrayLength

配列の現行の要素数へのポインタを指定します。

elementSize

各要素のデータ・バッファのサイズを指定します。反復実行および配列実行の場合、このサイズはデータ項目の各要素のサイズです。収集または分散のバインドおよび定義の場合、この値はOCIIOVecArrayのサイズです。モードはIOVECに設定する必要があります。

elementLemgth

長さの配列へのポインタを指定します。elementLength[i]は、配列内のi番目の要素の現在の長さです。

ind

インジケータの配列へのポインタを指定します。これは、すべてのバッファ要素に対するインジケータです。

rcs

リターン・コードの配列へのポインタを指定します。

13.30.72 setDouble()

パラメータをC++のdouble型の値に設定します。

構文

void setDouble(
   unsigned int paramIndex,
   double val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.73 setErrorOnNull()

文のparamIndexパラメータで、NULL値の読取りに対する例外を使用可能/使用禁止にします。例外を使用可能にして、getxxx() on paramIndexをコールすると、パラメータの値がNULLの場合は、結果がSQLExceptionになります。このコールは、例外を使用禁止にする際にも使用できます。

構文

void setErrorOnNull(
   unsigned int paramIndex,
   bool causeException);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

causeException

TRUEの場合、例外は使用可能です。FALSEの場合は使用禁止です。

13.30.74 setErrorOnTruncate()

このメソッドは、切捨てが発生する際の例外を使用可能/使用禁止にします。

構文

void setErrorOnTruncate(
   unsigned int paramIndex,
   bool causeException);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

causeException

TRUEの場合、例外は使用可能です。FALSEの場合は使用禁止です。

13.30.75 setFloat()

パラメータをC++のfloat型の値に設定します。

構文

void setFloat(
   unsigned int paramIndex,
   float val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.76 setInt()

パラメータをC++のint型の値に設定します。

構文

void setInt(
   unsigned int paramIndex,
   int val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.77 setIntervalDS()

パラメータをIntervalDS値に設定します。

構文

void setIntervalDS(
   unsigned int paramIndex,
   const IntervalDS &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.78 setIntervalYM()

パラメータをInterval値に設定します。

構文

void setIntervalYM(
   unsigned int paramIndex,
   const IntervalYM &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.79 setMaxIterations()

DML文に対して行われる起動の最大数を設定します。プリペアド文にパラメータが設定される前にコールする必要があります。反復数を大きくすると、1回のラウンドトリップでサーバーに送信されるパラメータ数が多くなります。ただし、数を大きくすると、すべてのパラメータに対して、より多くのメモリーが確保されます。この設定は、単に最大制限です。実質的な反復数は、addIteration()のコール数に依存します。

構文

void setMaxIterations(
   unsigned int maxIterations);
パラメータ 説明
maxIterations

この文に対して許可する最大の反復回数を指定します。

13.30.80 setMaxParamSize()

このメソッドは、指定されたパラメータに関して受渡しされるデータの最大量を設定します。文字とバイナリ・データに対してのみ適用されます。最大量を超過すると、超過したデータは廃棄されます。このメソッドは、LONG列を取り扱う場合に大変有効です。文字列またはBytesデータ型に読取りまたは書込みを行って、LONG列の切捨てを行う際に使用できます。

getSQL()メソッドまたはsetBytes()メソッドが、PL/SQLプロシージャのIN/OUTパラメータに値をバインドするためにコールされていて、OUTの値のサイズがINの値のサイズを超過することが予想される場合は、setMaxParamSize()をコールする必要があります。

構文

void setMaxParamSize(
   unsigned int paramIndex,
   unsigned int maxSize);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

maxSize

新規の最大パラメータ・サイズ制限(>0)を指定します。

13.30.81 setNull()

パラメータをSQLのNULLに設定します。パラメータのSQL型を指定する必要があります。

構文 説明
void setNull(
   unsigned int paramIndex,
   Type type);

オブジェクトを使用してパラメータの値をNULLに設定します。

void setNull(
   unsigned int paramIndex,
   Type type,
   const string &typeName,
   const string &schemaName = "")

オブジェクト型およびコレクション型のOCCIPOBJECTおよびOCCIVECTORについて、パラメータ値をNULLに設定します。オブジェクト型またはコレクション型の該当するスキーマおよび型名を使用します。stringをサポートする場合です。

void setNull(
   unsigned int paramIndex, 
   Type type, 
   UString &typeName, 
   UString &schemaName);

オブジェクト型およびコレクション型のOCCIPOBJECTおよびOCCIVECTORについて、パラメータ値をNULLに設定します。オブジェクト型またはコレクション型の該当するスキーマおよび型名を使用します。UStringをサポートする場合です。

パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

type

SQL型を指定します。

typeName

オブジェクトまたはコレクションの型名を指定します。

schemaName

オブジェクトまたはコレクションが定義されているスキーマの名前を指定します。

13.30.82 setNumber()

パラメータをNumber値に設定します。

構文

void setNumber(
   unsigned int paramIndex,
   const Number &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.83 setObject()

オブジェクトを使用してパラメータの値を設定します。整数値には、C++.lang等価オブジェクトを使用します。OCCI規格には、C++のObject型からSQL型への標準マッピングが規定されています。指定されたパラメータC++オブジェクトは、データベースに送信される前に、対応するSQL型に変換されます。

構文

void setObject(
   unsigned int paramIndex,
   PObject* val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

入力パラメータの値が含まれているオブジェクトを指定します。

sqltyp

設定するオブジェクトのSQL型名を指定します。

13.30.84 setPrefetchMemorySize()

サーバーへの各ラウンドトリップでフェッチしたデータを格納するために、OCCIによって繰り返し使用されるメモリー・サイズを設定します。0 (ゼロ)の値は、ラウンドトリップ中にフェッチしたデータの量がFetchRowCountパラメータによって制限されることを意味します。両方のパラメータが0 (ゼロ)でない場合、2つのうち量の少ない方が使用されます。

構文

void setPrefetchMemorySize(
   unsigned int bytes);
パラメータ 説明
bytes

各サーバーのラウンドトリップ中にフェッチされたデータの格納に使用するバイト数を指定します。

13.30.85 setPrefetchRowCount()

サーバーへの各ラウンドトリップで、OCCIによって繰り返しフェッチされる行数を設定します。0 (ゼロ)の値は、ラウンドトリップ中にフェッチしたデータの量がFetchMemorySizeパラメータによって制限されることを意味します。両方のパラメータが0 (ゼロ)でない場合、2つのうち量の少ない方が使用されます。両方のパラメータが0 (ゼロ)の場合、行カウントが内部的に1行にデフォルト設定され、これが、getFetchRowCount()メソッドから戻る値となります。

構文

void setPrefetchRowCount(
   unsigned int rowCount);
パラメータ 説明
rowCount

サーバーへの各ラウンドトリップでフェッチする行数を指定します。

13.30.86 setRef()

パラメータの値を参照に設定します。Ref<T>インスタンスは、このコール中に暗黙的にRefAnyオブジェクトに変換されます。

構文 説明
void setRef(
   unsigned int paramIndex,
   const RefAny &refAny); 

パラメータの値を参照に設定します。

void setRef(
   unsigned int paramIndex,
   const RefAny &refAny,
   const string &typName,
   const string &schName = "");

パラメータの値を参照に設定します。Statementがコール可能PL/SQLメソッドを表す場合、Refによって表されているスキーマ名およびオブジェクトの型名を渡します。stringをサポートする場合です。

void setRef(
   unsigned int paramIndex,
   const RefAny &refAny,
   const UString &typName,
   const UString &schName);

パラメータの値を参照に設定します。Statementがコール可能PL/SQLメソッドを表す場合、Refによって表されているスキーマ名およびオブジェクトの型名を渡します。UStringをサポートする場合です。

パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

refAny

参照を指定します。

typName

オブジェクトの型を指定します(オプション)。

schName

オブジェクト型が定義されているスキーマを指定します(オプション)。

13.30.87 setRowCountsOption()

getDMLRowCounts()の起動時に、反復ごとのDML行数を戻せるように、flagTRUEを設定します。

文を実行する前に、このオプションを設定する必要があります。デフォルトでは、反復ごとのDML行数は戻されません。

構文

void setRowCountsOption(
   bool flag);
パラメータ 説明
flag

DML行数を戻す場合はTRUEを設定し、戻さない場合はFALSEを設定します。

13.30.88 setRowid()

バインドの位置に対して、Rowidバイト配列を設定します。

構文

void setRowid(
   unsigned int paramIndex,
   const Bytes &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.89 setSQL()

このコールを使用して、新規SQL文字列をStatementオブジェクトに関連付けることができます。前のSQL文に関連付けられているリソースは解放されます。特に、前に取得した結果セットは無効になります。Statementの作成時に空のSQL文字列""が使用された場合は、最初に適切なSQL文字列を使用してsetSQLメソッドを実行する必要があります。

構文

void setSQL(
   const string &sql);
パラメータ 説明
sql

SQL文を指定します。

13.30.90 setSQLUString()

このオブジェクトにSQL文を関連付けます。Unicodeサポート: クライアントのEnvironmentをOCCIUTIF16モードで初期化する必要があります。

構文

void setSQLUString(
   const UString &sql);
パラメータ 説明
sql

SQL文を文の接続元と同じキャラクタ・セットで指定します。

13.30.91 setString()

指定された索引のパラメータを設定します。

構文

void setString(
   unsigned int paramIndex,
   const string &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.92 setTimestamp()

パラメータをTimestamp値に設定します。

構文

void setTimestamp(
   unsigned int paramIndex,
   const Timestamp &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.93 setUInt()

パラメータをC++のunsigned int型の値に設定します。

構文

void setUInt(
   unsigned int paramIndex,
   unsigned int val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.94 setUString()

指定された索引のパラメータを設定します。グローバリゼーション対応の場合です。

構文

void setUString(
   unsigned int paramIndex,
   const UString &val);
パラメータ 説明
paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

val

パラメータの値を指定します。

13.30.95 setVector()

パラメータをベクターに設定します。このメソッドは、型がコレクション型、VARRAYまたはネストした表の場合に必要です。コレクション内の要素のSQL型は、ベクターの型との互換性が必要です。たとえば、コレクションがVARCHAR2のVARRAYの場合は、vector<string>を使用します。

構文 説明
void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector< T > &vect,
   const string &schemaName,
   const string &typeName);

この構文は、Windows NTおよびz/OSなど、関数テンプレートの一部の順序付けがサポートされていないプラットフォームで使用します。これはマルチバイト・サポート用です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<T* > &vect,
   const string &schemaName,
   const string &typeName);

この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームで使用します。これはマルチバイト・サポート用です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<BDouble> &vect
   const string &sqltype);

BDoubleのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Bfile> &vect,
   const string &schemaName,
   const string &typeName);

const Bfileのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Bfile> &vect,
   const UString &schemaName,
   const UString &typeName);

const BFileのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<BFloat> &vect
   const string &sqltype);

BFloatのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Blob> &vect,
   const string &schemaName,
   const string &typeName);

const Blobのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Blob> &vect,
   const UString &schemaName,
   const UString &typeName);

const Blobのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Bytes> &vect,
   const string &sqltype); 

const Bytesのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Bytes> &vect,
   const string &schemaName,
   const string &typeName);

const Bytesのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Bytes> &vect,
   const Ustring &schemaName,
   const Ustring &typeName); 

const Bytesのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Clob> &vect,
   const string &schemaName,
   const string &typeName);

const Clobのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Clob> &vect,
   const UString &schemaName,
   const UString &typeName);

const Clobのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Date> &vect,
   const string &schemaName,
   const string &typeName);

const Dateのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Date> &vect,
   const UString &schemaName,
   const UString &typeName);

const Dateのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<double> &vect,
   const string &schemaName,
   const string &typeName);

const doubleのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<double> &vect,
   const UString &schemaName,
   const UString &typeName);

const doubleのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<float> &vect,
   const string &schemaName,
   const string &typeName);

const floatのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<float> &vect,
   const UString &schemaName,
   const UString &typeName);

const floatのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<int> &vect,
   const string &schemaName,
   const string &typeName);

const intのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<int> &vect,
   const UString &schemaName,
   const UString &typeName);

const intのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<IntervalDS> &vect,
   const string &schemaName,
   const string &typeName);

const IntervalDSのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<IntervalDS> &vect,
   const UString &schemaName,
   const UString &typeName);

const IntervalDSのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<IntervalYM> &vect,
   const string &schemaName,
   const string &typeName);

const IntervalYMのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<IntervalYM> &vect,
   const UString &schemaName,
   const UString &typeName);

const IntervalYMのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Number> &vect,
   const string &schemaName,
   const string &typeName);

const Numberのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Number> &vect,
   const UString &schemaName,
   const UString &typeName);

const Numberのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<RefAny> &vect,
   const string &schemaName,
   const string &typeName);

const RefAnyのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<RefAny> &vect,
   const UString &schemaName,
   const UString &typeName);

const RefAnyのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<string> &vect,
   const string &schemaName,
   const string &typeName);

const stringのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<string> &vect,
   const UString &schemaName,
   const UString &typeName);

const stringのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Timestamp> &vect,
   const string &schemaName,
   const string &typeName);

const Timestampのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Timestamp> &vect,
   const UString &schemaName,
   const UString &typeName);

const Timestampのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<unsigned int> &vect,
   const string &schemaName,
   const string &typeName);

const unsigned intのベクターを設定します。マルチバイト・サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<unsigned int> &vect,
   const UString &schemaName,
   const UString &typeName);

const unsigned intのベクターを設定します。UTF16サポートの場合です。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Bfile> &vect,
   string &sqltype);

Bfileのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Blob> &vect,
   string &sqltype);

Blobのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Clob> &vect,
   string &sqltype);

Clobのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Date> &vect,
   string &sqltype);

Dateのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<double> &vect,
   string &sqltype);

doubleのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<float> &vect,
   string &sqltype);

floatのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<int> &vect,
   string &sqltype);

intのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<IntervalDS> &vect,
   string &sqltype);

IntervalDSのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<IntervalYM> &vect,
   string &sqltype);

IntervalYMのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Number> &vect,
   string &sqltype);

Numberのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<RefAny> &vect,
   string &sqltype);

RefAnyのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<string> &vect,
   string &sqltype);

stringのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Timestamp> &vect,
   string &sqltype);

Timestampのベクターを設定します。

void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<unsigned int> &vect,
   string &sqltype);

unsigned intのベクターを設定します。

template <class T>
void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector< T* > &vect,
   const string &sqltype);

この構文は、関数テンプレートの一部の順序付けがサポートされていないプラットフォームで使用します。

template <class T>
void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<T> &vect,
   const string &sqltype);

この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームで使用します。

template <class T>
void setVector(
   Statement *stmt,
   unsigned int paramIndex,
   vector<Ref<T>> &vect,
   string &sqltype);

この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームでのみ使用できます。かわりにsetVectorOfRefs()を使用できます。

パラメータ 説明
stmt

パラメータを設定する文を指定します。

paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

vect

設定するベクターを指定します。

sqltype

データベース内のコレクションのSQL型を指定します。たとえば、CREATE TYPE num_coll AS VARRAY OF NUMBERの場合を考えてみます。列/パラメータの型はnum_collとします。この場合、SQL型はnum_collになります。

schemaName

使用するスキーマの名前を指定します。

typeName

13.30.96 setVectorOfRefs()

パラメータをベクターに設定します。型がREFのコレクション型またはREFのネストした表の場合に必要です。

構文 説明
template  <class T> void setVectorOfRefs(
   Statement *stmt, unsigned int paramIndex,
   const vector<Ref<T> > &vect,
   const string &sqltype);

パラメータをベクターに設定します。型がREFのコレクション型(REFのVARRAYまたはネストした表)の場合に必要です。

template  <class T>  void setVectorOfRefs(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Ref<T> > &vect,
   const string &sqltype);

マルチバイト・サポート用に使用します。

template  <class T> void setVectorOfRefs(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Ref<T>> &vect,
   const string &schemaName,
   const string &typeName);

マルチバイト・サポート用に使用します。

template  <class T> void setVectorOfRefs(
   Statement *stmt,
   unsigned int paramIndex,
   const vector<Ref<T> &vect,
   const UString &schemaName,
   const UString &typeName);

この構文は、Windows NTおよびz/OSなど、関数テンプレートの一部の順序付けがサポートされていないプラットフォームでUTF16をサポートする場合に使用します。

template <class T>  void setVector(
Statement *stmt,
unsigned int paramIndex,
const vector<T* > &vect,
const UString &schemaName,
const UString &typeName);

この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームでUTF16をサポートする場合に使用します。

パラメータ 説明
stmt

パラメータを設定する文を指定します。

paramIndex

パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

vect

設定するベクターを指定します。

sqltype

パラメータまたは列のSQL型を指定します。Ref<T>に対しては、特化した関数のsetVector()ではなく、setVectorOfRefs()を使用してください。

schemaName

使用するスキーマの名前を指定します。

typeName

13.30.97 status()

文の現在のステータスを戻します。書き込む(または読み取る)ストリーム・データがある場合に役に立ちます。getCurrentStreamParam()getCurrentIteration()などの他のメソッドをコールすると、書き込む必要があるストリーム・パラメータおよび反復実行や配列実行の現在の反復数を確認できます。このstatus()メソッドは、実行のステータスを確認するために繰り返しコールできます。

戻り値Statusについては、表13-43を参照してください。

構文

Status status() const;