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

前
 
次
 

Blobクラス

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

Blobクラスのメソッドを使用すると、Blobオブジェクトに関連する特定のタスクを実行できます。

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

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

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


関連項目:

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


表13-8 Blobメソッドの概要

メソッド 概要

Blob()


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

append()


指定したBLOBを現行のBLOBの最後に追加します。

close()


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

closeStream()


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

copy()


BFILEまたはBLOBの指定部分を現行のBLOBにコピーします。

getChunkSize()


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

getContentType()


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

getOptions()


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

getStream()


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

isInitialized()


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

isNull()


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

isOpen()


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

length()


BLOBのバイト数を戻します。

open()


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

operator=()


BLOBロケータをBlobオブジェクトに割り当てます。

operator==()


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

operator!=()


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

read()


BLOBの一部をバッファに読み取ります。

setContentType()


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

setEmpty()


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

setNull()


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

setOptions()


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

trim()


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

write()


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

writeChunk()


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


Blob()

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

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

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

append()

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

構文

void append(
   const Blob &srcBlob);
パラメータ 説明
srcBlob
現行のBLOBオブジェクトに追加するBLOBオブジェクトを指定します。

close()

BLOBをクローズします。

構文

void close();

closeStream()

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

構文

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

copy()

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

構文 説明
void copy(
   const Bfile &srcBfile,
   unsigned int numBytes,
   unsigned int dstOffset = 1,
   unsigned int srcOffset = 1);
BFILEの一部を現行のBLOBにコピーします。
void copy(
   const Blob &srcBlob,
   unsigned int numBytes,
   unsigned int dstOffset = 1,
   unsigned int srcOffset = 1);
BLOBの一部を現行のBLOBにコピーします。

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


パラメータ 説明
srcBfile
データのコピー元のBFILEを指定します。
srcBlob
データのコピー元のBLOBを指定します。
numBytes
ソースBFILEまたはソースBLOBからコピーするバイト数を指定します。有効な値は0 (ゼロ)以上の数値です。
dstOffset
現行のBLOBに書き込むデータの開始位置を指定します。有効な値は、1以上の数値です。
srcOffset
ソースBFILEまたはソースBLOBから読み取るデータの開始位置を指定します。有効な値は、1以上の数値です。

getChunkSize()

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

構文

unsigned int getChunkSize() const;

getContentType()

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

構文

string getContentType();

getOptions()

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

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

構文

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

getStream()

BLOBからStreamオブジェクトを戻します。ストリームがオープンしている場合、別のストリームをBlobオブジェクトでオープンすることはできません。したがって、ユーザーは、Blobオブジェクト操作を実行する前に、ストリームを常にクローズする必要があります。

構文

Stream* getStream(
   unsigned int offset = 1,
   unsigned int amount = 0);
パラメータ 説明
offset
BLOBから読み取るデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。有効な値は、1以上の数値です。
amount
BLOBから読み取るバイトの合計数を指定します。amount0 (ゼロ)の場合は、入力offsetの位置からBLOBの終わりまでのデータがストリーム・モードで読み取られます。

isInitialized()

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

構文

bool isInitialized() const;

isNull()

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

構文

bool isNull() const;

isOpen()

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

構文

bool isOpen() const;

length()

BLOBのバイト数を戻します。

構文

unsigned int length() const;

open()

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

構文

void open(
   LobOpenMode mode = OCCI_LOB_READWRITE);
パラメータ 説明
mode
BLOBをオープンするモードを指定します。次の値が有効です。
  • OCCI_LOB_READWRITE

  • OCCI_LOB_READONLY


operator=()

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

構文

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

operator==()

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

構文

bool operator==(
   const Blob &srcBlob) const;
パラメータ 説明
srcBlob
現行のBLOBと比較するソースBLOBを指定します。

operator!=()

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

構文

bool operator!=(
   const Blob &srcBlob) const;
パラメータ 説明
srcBlob
現行のBLOBと比較するソースBLOBを指定します。

read()

BLOBの一部またはすべてをバッファに読み取ります。実際に読み取られたバイト数が戻ります。

構文

unsigned int read(
   unsigned int amt,
   unsigned char *buffer,
   unsigned int bufsize,
   unsigned int offset = 1) const;
パラメータ 説明
amt
読み取るバイト数を指定します。有効な値は、1以上の数値です。
buffer
BLOBデータを読み取るバッファを指定します。有効な値は、amt以上の数値です。
buffsize
BLOBデータを読み取るバッファのサイズを指定します。有効な値は、amt以上の数値です。
offset
BLOBから読み取るデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。

setContentType()

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

構文

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

setEmpty()

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

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

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

setNull()

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

構文

void setNull();

setOptions()

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

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

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

構文

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

trim()

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

構文

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

write()

バッファのデータをBLOBに書き込みます。このメソッドは、BLOBを暗黙的にオープンしてバッファのデータをBLOBにコピーし、BLOBを暗黙的にクローズします。BLOBがオープンしている場合は、かわりにwriteChunk()を使用します。実際に書き込まれたバイト数が戻ります。

構文

unsigned int write(
   unsigned int amt,
   unsigned char *buffer,
   unsigned int bufsize,
   unsigned int offset = 1);
パラメータ 説明
amt
BLOBに書き込むバイト数を指定します。
buffer
BLOBに書き込むデータが含まれているバッファを指定します。
buffsize
BLOB書き込むデータが含まれているバッファのサイズを指定します。有効な値は、amt以上の数値です。
offset
BLOBに書き込むデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。有効な値は、1以上の数値です。

writeChunk()

バッファのデータを前にオープンしたBLOBに書き込みます。実際に書き込まれたバイト数が戻ります。

構文

unsigned int writeChunk(
   unsigned int amount,
   unsigned char *buffer,
   unsigned int bufsize,
   unsigned int offset = 1);
パラメータ 説明
amt
BLOBに書き込むバイト数を指定します。
buffer
BLOBに書き込むデータが含まれているバッファを指定します。
buffsize
BLOBに書き込むデータが含まれているバッファのサイズを指定します。有効な値は、amt以上の数値です。
offset
BLOBに書き込むデータの開始位置を指定します。offsetが未指定の場合、データはBLOBの最初から書き込まれます。有効な値は、1以上の数値です。