ヘッダーをスキップ
Oracle® C++ Call Interfaceプログラマーズ・ガイド,
11g リリース2 (11.2)
B72452-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Clobクラス

Clobクラスは、CLOB型オブジェクトの共通プロパティを定義します。Clobは、データベース表の行の列値として格納されるラージ・キャラクタ・オブジェクトです。Clobオブジェクトには、CLOBへの論理ポインタが含まれていますが、CLOB自体は含まれていません。

Clobクラスのメソッドを使用すると、Clobオブジェクトに関連する特定のタスクを実行できます。これには、SQL CLOBの長さを取得するためのメソッド、クライアント上のCLOBをマテリアライズするためのメソッドおよびCLOBの一部を抽出するためのメソッドも含まれます。

NULLCLOBオブジェクトに対して有効なメソッドは、setName()isNull()およびoperator=()のみです。

getClob()setClob()など、ResultSetクラスとStatementクラスのメソッドによって、SQL CLOBの値にアクセスできます。

未初期化のCLOBオブジェクトは、次の方法で初期化できます。


関連項目

  • LOBの詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の該当する章を参照してください。


表13-10 Clobメソッドの概要

メソッド 概要

Clob()


Clobクラスのコンストラクタです。

append()


Clobを現行のClobの最後に追加します。

close()


前にオープンしたClobをクローズします。

closeStream()


現行のClobから取得したStreamオブジェクトをクローズします。

copy()


ClobまたはBFILEのすべてまたは一部を現行のClobにコピーします。

getCharSetForm()


Clobのキャラクタ・セット・フォームを戻します。

getCharSetId()


Clobのキャラクタ・セットIDを戻します。

getCharSetIdUString()


Clobで使用されるキャラクタ・セットの名前のUStringバージョンを取得します。

getChunkSize()


CLOBへの効率的な書込みを実行するための最小データ・サイズを戻します。

getContentType()


Clobのコンテンツ・タイプを戻します。

getOptions()


指定したLobOptionTypeに対するCLOBLobOptionValueを戻します。

getStream()


StreamオブジェクトとしてCLOBからデータを戻します。

isInitialized()


Clobオブジェクトが初期化されているかどうかを確認します。

isNull()


ClobオブジェクトがアトミックNULLかどうかをテストします。

isOpen()


Clobがオープンしているかどうかを確認します。

length()


現行のCLOBの文字数を戻します。

open()


CLOBを読込み専用または読込み/書込みアクセスでオープンします。

operator=()


CLOBロケータを現行のClobオブジェクトに割り当てます。

operator==()


2つのClobオブジェクトが等しいかどうかを確認します。

operator!=()


2つのClobオブジェクトが等しくないかどうかを確認します。

read()


CLOBの一部をバッファに読み込みます。

setCharSetId()


Clobに関連付けられたキャラクタ・セットIDを設定します。

setCharSetIdUString()


Clobに関連付けられたキャラクタ・セットIDを設定します。このIDは、環境のキャラクタ・セットがUTF16の場合に使用されます。

setCharSetForm()


Clobに関連付けられたキャラクタ・セット・フォームを設定します。

setContentType()


Clobのコンテンツ・タイプを設定します。

setEmpty()


Clobオブジェクトを空に設定します。

setNull()


ClobオブジェクトをアトミックNULLに設定します。

setOptions()


特定のLobOptionTypeに対してLobOptionValueを指定します。CLOBの高度な圧縮、暗号化および重複除外を有効化します。

trim()


Clobを指定した長さに切り捨てます。

write()


バッファをオープンしていないCLOBに書き込みます。

writeChunk()


バッファをオープンしているCLOBに書き込みます。



Clob()

Clobクラスのコンストラクタです。

構文 説明
Clob();
NULLClobオブジェクトを作成します。
Clob(
   const Connection *connectionp);
未初期化のClobオブジェクトを構築します。
Clob(
   const Clob *srcClob);
Clobオブジェクトのコピーを作成します。

パラメータ 説明
connectionp
接続ポインタを指定します。
srcClob
コピー元のClobオブジェクトを指定します。


append()

CLOBを現行のCLOBの最後に追加します。

構文

void append(
   const Clob &srcClob);
パラメータ 説明
srcClob
現行のCLOBに追加するCLOBを指定します。


close()

CLOBをクローズします。

構文

void close();

closeStream()

CLOBから取得したStreamオブジェクトをクローズします。

構文

void closeStream(
   Stream *stream);
パラメータ 説明
stream
クローズするStreamオブジェクトを指定します。


copy()

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にコピーします。

コピー先のCLOBが重複除外に対応しており、コピー元およびコピー先のCLOBが同じ列内にある場合、新規CLOBがコピー・オン・ライトとして作成されます。コピー元のCLOBから他のすべての設定が継承されます。コピー先のCLOBが重複除外に対応していない場合、CLOBの完全に新しいコピーとなります。


パラメータ 説明
srcBfile
データのコピー元のBFILEを指定します。
srcClob
データのコピー元のCLOBを指定します。
numBytes
コピー元のBFILEまたはコピー元のCLOBからコピーするバイト数を指定します。有効な値は0(ゼロ)以上の数値です。
dstOffset
データの開始位置は0(ゼロ)です。

現行のCLOBに書き込むデータの開始位置を指定します。有効な値はコピー先バッファに書き込む最初のバイト位置を示す1以上の数値です。

srcOffset
ソースBFILEまたはソースCLOBから読み取るデータの開始位置を指定します。有効な値は、1以上の数値です。


getCharSetForm()

CLOBのキャラクタ・セット・フォームを戻します。

構文

CharSetForm getCharSetForm() const;

getCharSetId()

CLOBのキャラクタ・セットIDを文字列形式で戻します。

構文

string getCharSetId() const;

getCharSetIdUString()

Clobで使用されるキャラクタ・セットの名前のUStringバージョンを取得します。

構文

UString getCharSetIdUString() const;

getChunkSize()

CLOBへの効率的な書込みを実行するための最小データ・サイズを戻します。

構文

unsigned int getChunkSize() const;

getContentType()

Clobのコンテンツ・タイプを戻します。コンテンツ・タイプが割り当てられていない場合は、NULL文字列を戻します。

構文

string getContentType();

getOptions()

指定したLobOptionTypeに対するCLOBLobOptionValueを戻します。

CLOBが格納されたデータベース列またはパーティションに対して設定されていないオプションの値を取得しようとすると、例外が発生します。

構文

LobOptionValue getOptions(
   LobOptionType optType);
パラメータ 説明
optType
要求されるLobOptionTypeの設定です。これらの設定は、サーバーのラウンドトリップを避けるために、ビット単位のor (|)を使用して結合できます。表7-1「LobOptionType型の値」および表7-2「LobOptionValue型の値」を参照してください。


getStream()

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の最後までのデータが読み取られます。


isInitialized()

Clobオブジェクトが初期化されているかどうかを確認します。Clobオブジェクトが初期化されている場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isInitialized() const;

isNull()

ClobオブジェクトがアトミックNULLかどうかをテストします。ClobオブジェクトがアトミックNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

isOpen()

CLOBがオープンしているかどうかを確認します。CLOBがオープンしている場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isOpen() const;

length()

CLOBの文字数を戻します。

構文

unsigned int length() const;

open()

CLOBを読込み/書込みモードまたは読込み専用モードでオープンします。

構文

void open(
   LObOpenMode mode = OCCI_LOB_READWRITE);
パラメータ 説明
mode
CLOBをオープンするモードを指定します。有効な値は、次のとおりです。
  • OCCI_LOB_READWRITE

  • OCCI_LOB_READONLY



operator=()

現行のCLOBCLOBを割り当てます。割当て元CLOBは、割当て先CLOBが表に格納されているときにのみ、その割当て先CLOBにコピーされます。

構文

Clob& operator=(
   const Clob &srcClob);
パラメータ 説明
srcClob
データのコピー元のClobを指定します。


operator==()

2つのClobオブジェクトを比較して、等しいかどうかを調べます。2つのClobオブジェクトが同じCLOBを参照している場合、それらのオブジェクトは等しいと判断されます。2つのClobオブジェクトがNULLの場合は、等しいとは判断されません。Blobオブジェクトが等しい場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool operator==(
   const Clob &srcClob) const;
パラメータ 説明
srcClob
現行のClobオブジェクトと比較するClobオブジェクトを指定します。


operator!=()

2つのClobオブジェクトを比較して、等しくないかどうかを調べます。2つのClobオブジェクトが同じCLOBを参照している場合、それらのオブジェクトは等しいと判断されます。2つのClobオブジェクトがNULLの場合は、等しいとは判断されません。2つのClobオブジェクトが等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool operator!=(
   const Clob &srcClob) const;
パラメータ 説明
srcClob
現行のClobオブジェクトと比較するClobオブジェクトを指定します。


read()

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以上の数値です。


setCharSetId()

Clobに関連付けられたキャラクタ・セットIDを設定します。設定したキャラクタセットIDは、読込み/書込みおよびgetStream()操作で使用されます。値が明示的に設定されていない場合は、デフォルトのクライアントのキャラクタ・セットIDが使用されます。サポートされているキャラクタ・セットのリストは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Aを参照してください。

構文

void setCharSetId(
   const string &charset);
パラメータ 説明
charset
Oracleは、E8DECZHT16BIG5またはOCCIUTF16などのキャラクタ・セット名をサポートしています。


setCharSetIdUString()

Clobに関連付けられたキャラクタセットIDを設定します。このIDは、環境のキャラクタセットがUTF16の場合に使用されます。設定したcharset IDは、読込み/書込みおよびgetStream()操作で使用されます。

構文

void setCharSetIdUSString(
   const string &charset);
パラメータ 説明
charset
Oracleは、WE8DECZHT16BIG5またはOCCIUTF16など、UString(UTF16キャラクタ・セット)のキャラクタ・セット名をサポートしています。


setCharSetForm()

CLOBに関連付けられたキャラクタ・セット・フォームを設定します。設定したキャラクタ・セット・フォームは、読込み/書込みおよびgetStream()操作で使用されます。値が明示的に設定されていない場合、デフォルトではOCCI_SQLCS_IMPLICITが使用されます。

構文

void setCharSetForm(
   CharSetForm csfrm );
パラメータ 説明
csfrm
Clobのキャラクタ・セット・フォームを指定します。


setContentType()

Clobのコンテンツ・タイプを設定します。ClobがSecureFileでない場合は、例外が発生します。

構文

void setContentType(
   const string contenttype);
パラメータ 説明
contenttype
Clobのコンテンツ・タイプを指定します。ASCII Mime対応の文字列です。


setEmpty()

Clobオブジェクトを空に設定します。

構文 説明
void setEmpty();
Clobオブジェクトを空に設定します。
void setEmpty(
   const Connection* connectionp);
Clobオブジェクトを空に設定し、渡されたパラメータへの接続ポインタを初期化します。

パラメータ 説明
connectionp
Clobオブジェクトの新しい接続ポインタを指定します。


setNull()

ClobオブジェクトをアトミックNULLに設定します。

構文

void setNull();

setOptions()

特定のLobOptionTypeに対してLobOptionValueを指定します。CLOBの高度な圧縮、暗号化および重複除外を有効化します。表7-1「LobOptionType型の値」および表7-2「LobOptionValue型の値」を参照してください。

CLOBが格納されたデータベース列またはパーティションに対して設定されていないオプションを設定または設定解除しようとすると、例外が発生します。

暗号化されたCLOB列で暗号化をオフにしようとすると、例外が発生します。

構文

void setOptions(
   LobOptionType optType,
   LobOptionValue optValue);
パラメータ 説明
optType
指定されているLobOptionTypeの設定です。これらの設定は、サーバーのラウンドトリップを避けるために、ビット単位のor (|)を使用して結合できます。
optValue
optTypeパラメータで指定されたLobOptionTypeLobOptionValue設定です。


trim()

CLOBを新しく指定した長さに切り捨てます。

構文

void trim(
   unsigned int newlen);
パラメータ 説明
newlen
CLOBの新しい長さを指定します。有効な値は、CLOBの現在の長さ以下の数値です。


write()

バッファのデータを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パラメータは次の数を表します。
  • 固定幅キャラクタ・セット(UTF16)の場合は書き込む文字数

  • マルチバイト・キャラクタ・セット(UTF8など)の場合は書き込むバイト数

buffer
CLOBに書き込むデータが含まれているバッファを指定します。
buffsize
CLOBに書き込むデータが含まれているバッファのサイズを指定します。有効な値は、amt以上の数値です。
offset
CLOBに書き込むデータの開始位置を指定します。offsetが未指定の場合、データはCLOBの最初から書き込まれます。有効な値は、1以上の数値です。


writeChunk()

バッファのデータを前にオープンした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以上の数値です。