13.7 Blobクラス
Blob
クラスは、BLOB
型オブジェクトの共通プロパティを定義します。BLOB
は、データベース表の行の列値として格納されるラージ・バイナリ・オブジェクトです。Blob
オブジェクトには、BLOB
への論理ポインタが含まれていますが、BLOB
自体は含まれていません。
Blob
クラスのメソッドを使用すると、Blob
オブジェクトに関連する特定のタスクを実行できます。
getBlob()
やsetBlob()
など、ResultSet
クラスとStatement
クラスのメソッドによって、SQL BLOB
の値にアクセスできます。
NULL
のBlob
オブジェクトに対する有効なメソッドは、setName()、isNull()およびoperator=()のみです。
未初期化のBlob
オブジェクトは、次の方法で初期化できます。
-
setEmpty()メソッドを実行します。次に、この
BLOB
を表に挿入してBLOB
を変更すると、SELECT...FOR UPDATE
を使用してその内容を取り出すことができます。write()メソッドによってBLOB
は変更されますが、変更されたデータは、トランザクションがコミットされたときにのみ表にフラッシュされます。UPDATEは必要ありません。 -
初期化した
Blob
オブジェクトを割り当てます。
関連項目:
-
LOBの詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください
表13-8 Blobメソッドの概要
メソッド | 概要 |
---|---|
|
|
指定した |
|
前にオープンした |
|
|
|
|
|
|
|
|
|
指定した |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2つの |
|
2つの |
|
|
|
|
|
|
|
|
|
特定の |
|
|
|
バッファをオープンされていない |
|
バッファをオープンされている |
13.7.1 Blob()
Blob
クラスのコンストラクタです。
構文 | 説明 |
---|---|
Blob(); |
|
Blob( const Connection *connectionp); |
未初期化の |
Blob( const Blob &srcBlob); |
|
パラメータ | 説明 |
---|---|
connectionp |
接続ポインタを指定します。 |
srcBlob |
コピー元の |
13.7.2 append()
BLOB
を現行のBLOB
の最後に追加します。
構文
void append( const Blob &srcBlob);
パラメータ | 説明 |
---|---|
srcBlob |
現行の |
13.7.4 closeStream()
BLOB
から取得したStreamオブジェクトをクローズします。
構文
void closeStream( Stream *stream);
パラメータ | 説明 |
---|---|
stream |
クローズする |
13.7.5 copy()
BFILE
またはBLOB
の一部またはすべてを現行のBLOB
にコピーします。
構文 | 説明 |
---|---|
void copy( const Bfile &srcBfile, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1); |
|
void copy( const Blob &srcBlob, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1); |
コピー先の |
パラメータ | 説明 |
---|---|
srcBfile |
データのコピー元の |
srcBlob |
データのコピー元の |
numBytes |
ソース |
dstOffset |
現行の |
srcOffset |
ソース |
13.7.7 getContentType()
Blob
のコンテンツ・タイプを戻します。コンテンツ・タイプが割り当てられていない場合は、NULL
文字列を戻します。
構文
string getContentType();
13.7.9 getStream()
BLOB
からStream
オブジェクトを戻します。ストリームがオープンしている場合、別のストリームをBlob
オブジェクトでオープンすることはできません。したがって、ユーザーは、Blob
オブジェクト操作を実行する前に、ストリームを常にクローズする必要があります。
構文
Stream* getStream( unsigned int offset = 1, unsigned int amount = 0);
パラメータ | 説明 |
---|---|
offset |
|
amount |
|
13.7.10 isInitialized()
Blob
オブジェクトが初期化されているかどうかを確認します。Blob
オブジェクトが初期化されている場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isInitialized() const;
13.7.11 isNull()
Blob
オブジェクトがアトミックNULL
かどうかをテストします。Blob
オブジェクトがアトミックNULL
の場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isNull() const;
13.7.12 isOpen()
BLOB
がオープンしているかどうかを確認します。BLOB
がオープンしている場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isOpen() const;
13.7.14 open()
BLOB
を読取り/書込みまたは読取り専用モードでオープンします。
構文
void open( LobOpenMode mode = OCCI_LOB_READWRITE);
パラメータ | 説明 |
---|---|
mode |
|
13.7.15 operator=()
現行のBLOB
にBLOB
を割り当てます。割当て元BLOB
は、割当て先BLOB
が表に格納されているときにのみ、その割当て先BLOB
にコピーされます。
構文
Blob& operator=( const Blob &srcBlob);
パラメータ | 説明 |
---|---|
srcBlob |
データのコピー元の |
13.7.16 operator==()
2つのBlob
オブジェクトを比較して、等しいかどうかを調べます。2つのBlob
オブジェクトが同じBLOB
を参照している場合、それらのオブジェクトは等しいと判断されます。2つのBlob
オブジェクトがNULL
の場合は、等しいとは判断されません。Blob
オブジェクトが等しい場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator==( const Blob &srcBlob) const;
パラメータ | 説明 |
---|---|
srcBlob |
現行の |
13.7.17 operator!= ()
2つのBlob
オブジェクトを比較して、等しくないかどうかを調べます。2つのBlob
オブジェクトが同じBLOB
を参照している場合、それらのオブジェクトは等しいと判断されます。2つのBlob
オブジェクトがNULL
の場合は、等しいとは判断されません。2つのBlob
オブジェクトが等しくない場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator!=( const Blob &srcBlob) const;
パラメータ | 説明 |
---|---|
srcBlob |
現行の |
13.7.18 read()
BLOB
の一部またはすべてをバッファに読み取ります。実際に読み取られたバイト数が戻ります。
構文
unsigned int read( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) const;
パラメータ | 説明 |
---|---|
amt |
読み取るバイト数を指定します。有効な値は、 |
buffer |
|
buffsize |
|
offset |
|
13.7.19 setContentType()
Blob
のコンテンツ・タイプを設定します。Blob
がSecureFileでない場合は、例外が発生します。
構文
void setContentType( const string contenttype);
パラメータ | 説明 |
---|---|
contenttype |
|
13.7.20 setEmpty()
Blob
オブジェクトを空に設定します。
構文 | 説明 |
---|---|
void setEmpty(); |
|
void setEmpty( const Connection* connectionp); |
|
パラメータ | 説明 |
---|---|
connectionp |
|
13.7.22 setOptions()
特定のLobOptionType
に対してLobOptionValue
を指定します。BLOB
の高度な圧縮、暗号化および重複除外を有効化します。表7-1と表7-2を参照してください。
BLOB
が格納されたデータベース列またはパーティションに対して設定されていないオプションを設定または設定解除しようとすると、例外が発生します。
暗号化されたBLOB
列で暗号化をオフにしようとすると、例外が発生します。
構文
void setOptions( LobOptionType optType, LobOptionValue optValue);
パラメータ | 説明 |
---|---|
optType |
指定されている |
optValue |
|
13.7.23 trim()
BLOB
を新しく指定した長さに切り捨てます。
構文
void trim( unsigned int newlen);
パラメータ | 説明 |
---|---|
newlen |
|
13.7.24 write()
バッファのデータをBLOB
に書き込みます。このメソッドは、BLOB
を暗黙的にオープンしてバッファのデータをBLOB
にコピーし、BLOB
を暗黙的にクローズします。BLOB
がオープンしている場合は、かわりにwriteChunk()を使用します。実際に書き込まれたバイト数が戻されます。
構文
unsigned int write( unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
パラメータ | 説明 |
---|---|
amt |
|
buffer |
|
buffsize |
|
offset |
|
13.7.25 writeChunk()
バッファのデータを前にオープンしたBLOB
に書き込みます。実際に書き込まれたバイト数が戻されます。
構文
unsigned int writeChunk( unsigned int amount, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
パラメータ | 説明 |
---|---|
amt |
|
buffer |
|
buffsize |
|
offset |
|