Clob
クラスは、CLOB
型オブジェクトの共通プロパティを定義します。Clob
は、データベース表の行の列値として格納されるラージ・キャラクタ・オブジェクトです。Clob
オブジェクトには、CLOB
への論理ポインタが含まれていますが、CLOB
自体は含まれていません。
Clob
クラスのメソッドを使用すると、Clob
オブジェクトに関連する特定のタスクを実行できます。これには、SQL CLOB
の長さを取得するためのメソッド、クライアント上のCLOB
をマテリアライズするためのメソッドおよびCLOB
の一部を抽出するためのメソッドも含まれます。
NULL
のCLOB
オブジェクトに対して有効なメソッドは、setName()、isNull()およびoperator=()のみです。
getClob()
やsetClob()
など、ResultSet
クラスとStatement
クラスのメソッドによって、SQL CLOB
の値にアクセスできます。
未初期化のCLOB
オブジェクトは、次の方法で初期化できます。
setEmpty()メソッドを実行します。次に、このCLOB
を表に挿入してCLOB
を変更すると、SELECT...FOR UPDATE
を使用してその内容を取り出すことができます。write()メソッドによってCLOB
は変更されますが、変更されたデータは、トランザクションがコミットされたときにのみ表にフラッシュされます。INSERT
は必要ありません。
初期化したClob
オブジェクトを割り当てます。
関連項目:
|
メソッド | 概要 |
---|---|
|
|
|
|
|
前にオープンした |
|
現行の |
|
|
|
|
|
|
|
|
|
|
|
|
|
指定した |
|
|
|
|
|
|
|
|
|
現行の |
|
|
|
|
|
2つの |
|
2つの |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
特定の |
|
|
|
バッファをオープンされていない |
|
Clob
クラスのコンストラクタです。
構文 | 説明 |
---|---|
Clob(); |
NULL のClob オブジェクトを作成します。 |
Clob( const Connection *connectionp); |
未初期化のClob オブジェクトを構築します。 |
Clob( const Clob *srcClob); |
Clob オブジェクトのコピーを作成します。 |
パラメータ | 説明 |
---|---|
connectionp |
接続ポインタを指定します。 |
srcClob |
コピー元のClob オブジェクトを指定します。 |
CLOB
を現行のCLOB
の最後に追加します。
構文
void append( const Clob &srcClob);
パラメータ | 説明 |
---|---|
srcClob |
現行のCLOB に追加するCLOB を指定します。 |
CLOB
から取得したStream
オブジェクトをクローズします。
構文
void closeStream( Stream *stream);
パラメータ | 説明 |
---|---|
stream |
クローズするStreamオブジェクトを指定します。 |
BFILE
またはCLOB
の一部またはすべてを現行のCLOB
にコピーします。
OCCIは、Bfile
からClob
にデータをロードする際にキャラクタセット変換を実行しません。そのため、Bfile
の内容がサーバーのClob
記憶域キャラクタセット内の文字データであることを確認してください。
構文 | 説明 |
---|---|
void copy( const Bfile &srcBfile, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1); |
BFILE を現行のCLOB にコピーします。 |
void copy( const Clob &srcClob, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1); |
CLOB を現行のCLOB にコピーします。
コピー先の |
パラメータ | 説明 |
---|---|
srcBfile |
データのコピー元のBFILE を指定します。 |
srcClob |
データのコピー元のCLOB を指定します。 |
numBytes |
コピー元のBFILE またはコピー元のCLOB からコピーするバイト数を指定します。
有効な値は0 (ゼロ)以上の数値です。 |
dstOffset |
データの開始位置は0 (ゼロ)です。
現行の |
srcOffset |
ソースBFILE またはソースCLOB から読み取るデータの開始位置を指定します。有効な値は、1以上の数値です。 |
Clob
で使用されるキャラクタ・セットの名前のUString
バージョンを取得します。
構文
UString getCharSetIdUString() const;
Clob
のコンテンツ・タイプを戻します。コンテンツ・タイプが割り当てられていない場合は、NULL
文字列を戻します。
構文
string getContentType();
指定したLobOptionType
に対するCLOB
のLobOptionValue
を戻します。
CLOB
が格納されたデータベース列またはパーティションに対して設定されていないオプションの値を取得しようとすると、例外が発生します。
構文
LobOptionValue getOptions( LobOptionType optType);
パラメータ | 説明 |
---|---|
optType |
要求されるLobOptionType の設定です。これらの設定は、サーバーのラウンドトリップを避けるために、ビット単位のor (| )を使用して結合できます。表7-1「LobOptionType型の値」および表7-2「LobOptionValue型の値」を参照してください。 |
CLOB
からStream
オブジェクトを戻します。ストリームがオープンしている場合、別のストリームをCLOB
オブジェクトでオープンすることはできません。したがって、ユーザーは、Clob
オブジェクト操作を実行する前に、ストリームを常にクローズする必要があります。キャラクタ・セットIDとフォームは、setCharSetId()およびsetEmpty()のコールで明示的に設定されていない場合、デフォルトでクライアントのキャラクタ・セットIDとフォームが使用されます。
構文
Stream* getStream( unsigned int offset = 1, unsigned int amount = 0);
パラメータ | 説明 |
---|---|
offset |
CLOB から読み取るデータの開始位置を指定します。offset が未指定の場合、データはCLOB の最初から書き込まれます。有効な値は、1以上の数値です。 |
amount |
連続して読み取る文字数の合計を指定します。amount が0 (ゼロ)の場合は、offset 値からCLOB の最後までのデータが読み取られます。 |
Clob
オブジェクトが初期化されているかどうかを確認します。Clob
オブジェクトが初期化されている場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isInitialized() const;
Clob
オブジェクトがアトミックNULL
かどうかをテストします。Clob
オブジェクトがアトミックNULL
の場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isNull() const;
CLOB
を読取り/書込み
または読取り専用モードでオープンします。
構文
void open( LObOpenMode mode = OCCI_LOB_READWRITE);
パラメータ | 説明 |
---|---|
mode |
CLOB をオープンするモードを指定します。有効な値は、次のとおりです。
|
現行のCLOB
にCLOB
を割り当てます。割当て元CLOB
は、割当て先CLOB
が表に格納されているときにのみ、その割当て先CLOB
にコピーされます。
構文
Clob& operator=( const Clob &srcClob);
パラメータ | 説明 |
---|---|
srcClob |
データのコピー元のClob を指定します。 |
2つのClob
オブジェクトを比較して、等しいかどうかを調べます。2つのClob
オブジェクトが同じCLOB
を参照している場合、それらのオブジェクトは等しいと判断されます。2つのClob
オブジェクトがNULL
の場合は、等しいとは判断されません。Blob
オブジェクトが等しい場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator==( const Clob &srcClob) const;
パラメータ | 説明 |
---|---|
srcClob |
現行のClob オブジェクトと比較するClob オブジェクトを指定します。 |
2つのClob
オブジェクトを比較して、等しくないかどうかを調べます。2つのClob
オブジェクトが同じCLOB
を参照している場合、それらのオブジェクトは等しいと判断されます。2つのClob
オブジェクトがNULL
の場合は、等しいとは判断されません。2つのClob
オブジェクトが等しくない場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator!=( const Clob &srcClob) const;
パラメータ | 説明 |
---|---|
srcClob |
現行のClob オブジェクトと比較するClob オブジェクトを指定します。 |
CLOB
の一部またはすべてをバッファに読み取ります。
UTF16などの固定幅キャラクタ・セットの場合は実際の文字数、UTF8などのマルチバイト・キャラクタ・セットの場合は読み取られたバイト数が戻されます。
キャラクタ・セットIDとフォームは、setCharSetId()、setCharSetIdUString()およびsetCharSetForm()のコールで明示的に設定されていない場合、デフォルトでクライアントのキャラクタ・セットIDとフォームが使用されます。
このメソッドの2番目のバージョンでの戻り値は、固定幅キャラクタ・セット(UTF16)の場合は読み取られた文字数を表し、マルチバイト・キャラクタ・セット(UTF8など)の場合は読み取られたバイト数を表します。
構文 | 説明 |
---|---|
unsigned int read( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset=1) const; |
CLOB の一部またはすべてをバッファに読み取ります。 |
unsigned int read( unsigned int amt, unsigned utext *buffer, unsigned int bufsize, unsigned int offset=1) const; |
グローバリゼーションが有効化された状態で、CLOB の一部またはすべてをバッファに読み取ります。このメソッドは、setCharSetId() メソッドを使用してキャラクタ・セットをOCCIUTF16に設定した後にコールする必要があります。 |
パラメータ | 説明 |
---|---|
amt |
CLOB から読み取るバイト数を指定します。 |
buffer |
CLOB データを読み取るバッファを指定します。 |
buffsize |
バッファのサイズを指定します。有効な値は、amt 以上の数値です。 |
offset |
CLOB から読み取るデータの開始位置を指定します。offset が未指定の場合、データはCLOB の最初から書き込まれます。有効な値は、1以上の数値です。 |
Clob
に関連付けられたキャラクタ・セットIDを設定します。設定したキャラクタセットIDは、読取り/書込みおよびgetStream()操作で使用されます。値が明示的に設定されていない場合は、デフォルトのクライアントのキャラクタ・セットIDが使用されます。サポートされているキャラクタ・セットのリストは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Aを参照してください。
構文
void setCharSetId( const string &charset);
パラメータ | 説明 |
---|---|
charset |
Oracleは、E8DEC 、ZHT16BIG5 またはOCCIUTF16 などのキャラクタ・セット名をサポートしています。 |
Clob
に関連付けられたキャラクタセットIDを設定します。このIDは、環境のキャラクタセットがUTF16
の場合に使用されます。設定したcharset
IDは、読取り/書込みおよびgetStream()操作で使用されます。
構文
void setCharSetIdUSString( const string &charset);
パラメータ | 説明 |
---|---|
charset |
Oracleは、WE8DEC 、ZHT16BIG5 またはOCCIUTF16 など、UString (UTF16キャラクタ・セット)のキャラクタ・セット名をサポートしています。 |
CLOB
に関連付けられたキャラクタ・セット・フォームを設定します。設定したキャラクタ・セット・フォームは、読取り/書込みおよびgetStream()操作で使用されます。値が明示的に設定されていない場合、デフォルトではOCCI_SQLCS_IMPLICIT
が使用されます。
構文
void setCharSetForm( CharSetForm csfrm );
パラメータ | 説明 |
---|---|
csfrm |
Clob のキャラクタ・セット・フォームを指定します。 |
Clob
のコンテンツ・タイプを設定します。Clob
がSecureFileでない場合は、例外が発生します。
構文
void setContentType( const string contenttype);
パラメータ | 説明 |
---|---|
contenttype |
Clob のコンテンツ・タイプを指定します。ASCII Mime対応の文字列です。 |
Clob
オブジェクトを空に設定します。
構文 | 説明 |
---|---|
void setEmpty(); |
Clob オブジェクトを空に設定します。 |
void setEmpty( const Connection* connectionp); |
Clob オブジェクトを空に設定し、渡されたパラメータへの接続ポインタを初期化します。 |
パラメータ | 説明 |
---|---|
connectionp |
Clob オブジェクトの新しい接続ポインタを指定します。 |
特定のLobOptionType
に対してLobOptionValue
を指定します。CLOBの高度な圧縮、暗号化および重複除外を有効化します。表7-1「LobOptionType型の値」および表7-2「LobOptionValue型の値」を参照してください。
CLOB
が格納されたデータベース列またはパーティションに対して設定されていないオプションを設定または設定解除しようとすると、例外が発生します。
暗号化されたCLOB
列で暗号化をオフにしようとすると、例外が発生します。
構文
void setOptions( LobOptionType optType, LobOptionValue optValue);
パラメータ | 説明 |
---|---|
optType |
指定されているLobOptionType の設定です。これらの設定は、サーバーのラウンドトリップを避けるために、ビット単位のor (| )を使用して結合できます。 |
optValue |
optType パラメータで指定されたLobOptionType のLobOptionValue 設定です。 |
CLOB
を新しく指定した長さに切り捨てます。
構文
void trim( unsigned int newlen);
パラメータ | 説明 |
---|---|
newlen |
CLOB の新しい長さを指定します。有効な値は、CLOB の現在の長さ以下の数値です。 |
バッファのデータをCLOB
に書き込みます。
このメソッドは、CLOB
を暗黙的にオープンしてバッファのデータをCLOB
にコピーし、CLOB
を暗黙的にクローズします。CLOB
がオープンしている場合は、かわりにwriteChunk()を使用します。実際に書き込まれた文字数が戻ります。キャラクタ・セットIDとフォームは、setCharSetId()およびsetCharSetForm()のコールで明示的に設定されていない場合、デフォルトでクライアントのキャラクタ・セットIDとフォームが使用されます。
構文 | 説明 |
---|---|
unsigned int write( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset=1); |
バッファのデータをCLOB に書き込みます。 |
unsigned int write( unsigned int amt, utext *buffer, unsigned int bufsize, unsigned int offset=1); |
グローバリゼーションが有効化されている状態で、UTF16バッファのデータをCLOB に書き込みます。このメソッドは、setCharSetIdUString()メソッドを使用してキャラクタ・セットをOCCIUTF16に設定した後にコールする必要があります。 |
パラメータ | 説明 |
---|---|
amt |
amountパラメータは次の数を表します。
|
buffer |
CLOB に書き込むデータが含まれているバッファを指定します。 |
buffsize |
CLOB に書き込むデータが含まれているバッファのサイズを指定します。 有効な値は、amt 以上の数値です。 |
offset |
CLOB に書き込むデータの開始位置を指定します。offset が未指定の場合、データはCLOB の最初から書き込まれます。有効な値は、1以上の数値です。 |
バッファのデータを前にオープンしたCLOB
に書き込みます。実際の文字数を戻します。キャラクタ・セットIDとフォームは、setCharSetId()およびsetCharSetForm()のコールで明示的に設定されていない場合、デフォルトでクライアントのキャラクタ・セットIDとフォームが使用されます。
構文 | 説明 |
---|---|
unsigned int writeChunk( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset=1); |
バッファのデータを前にオープンしたCLOB に書き込みます。 |
unsigned int writeChunk( unsigned int amt, utext *buffer, unsigned int bufsize, unsigned int offset=1); |
グローバリゼーションが有効化されている状態で、UTF16バッファのデータをCLOB に書き込みます。このメソッドは、setCharSetIdUString()メソッドを使用してキャラクタ・セットをOCCIUTF16 に設定した後にコールする必要があります。 |
パラメータ | 説明 |
---|---|
amt |
amtパラメータは、固定幅キャラクタセット(UTF16)の場合は書き込まれた文字数、マルチバイト・キャラクタセット(UTF8など)の場合は書き込まれたバイト数を表します。 |
buffer |
CLOB に書き込むデータが含まれているバッファを指定します。 |
buffsize |
CLOB に書き込むデータが含まれているバッファのサイズを指定します。 有効な値は、amt 以上の数値です。 |
offset |
CLOB に書き込むデータの開始位置を指定します。offset が未指定の場合、データはCLOB の最初から書き込まれます。有効な値は、1以上の数値です。 |