1.3 LOB分類
LOBには、オーディオ、ビデオ、ドキュメントなどの様々なデータが格納されます。使用されるLOBまたはメモリー管理メカニズムに格納されているデータのタイプに基づいて、分類が異なります。
- ラージ・オブジェクト・データ型
Oracle Databaseには、ラージ・オブジェクト・データ型のセットがSQLデータ型として用意されていますが、LOBという用語は一般的にセットを指します。 - LOBのタイプ
この項では、Oracleでサポートされている3種類のLOBデータについて説明します。 - オブジェクト・データ型でのLOB
通常、LOB列またはオブジェクト・データ型でのLOBインスタンスのメンバーとしての使用方法に違いはありません。 - LOBに格納されるOracleデータ型
Oracle Databaseで提供される多くのデータ型は、LOB型として格納または作成されます。
親トピック: ラージ・オブジェクトおよびSecureFilesの概要
1.3.1 ラージ・オブジェクト・データ型
Oracle Databaseは、ラージ・オブジェクト・データ型セットをSQLデータ型として提供しますが、LOBという用語は一般的にこのセットを示します。
通常、この表と関連する各項に記載されているデータ型の説明は、他のプログラム環境で提供される対応するデータ型にも適用されます。
次の表では、データベースでサポートされるラージ・オブジェクトの各データ型について説明し、そのデータ型を使用するデータの種類を示します。
表1-1 ラージ・オブジェクト・データのタイプ
SQLデータ型 | 説明 |
---|---|
|
バイナリ・ラージ・オブジェクト すべての種類のデータがバイナリ形式で格納されます。イメージ、オーディオおよびビデオに使用されます。 |
|
キャラクタ・ラージ・オブジェクト 文字列データがデータベース文字セット形式で格納されます。データベース文字セットを使用する大きい文字列またはドキュメント専用です。データベース文字セットの文字は固定幅形式です。 |
|
各国語文字セット・ラージ・オブジェクト 文字列データ(通常はラージ文字列またはドキュメント)を各国語文字セット書式で格納します。可変幅形式の文字がサポートされます。 |
|
外部バイナリ・ファイル ホスト・オペレーティング・システムのファイル・システム内でデータベースの外部に格納される、データベース表からアクセス可能なバイナリ・ファイルです。
|
親トピック: LOBの分類
1.3.2 LOBのタイプ
この項では、Oracleでサポートされている3種類のLOBデータについて説明します。
永続LOB
永続LOBとは、データベースの表の行に存在するLOBインスタンスです。永続LOBは、データベース・トランザクションに関係します。トランザクションまたはメディアに障害が発生した場合は永続LOBをリカバリでき、永続LOB値に対する変更はすべてコミットまたはロールバックできます。つまり、データベース・オブジェクトに適用されるACID (Atomicity, Consistency, Isolation, and Durability)プロパティはすべて永続LOBに適用されます。永続LOBのデータ型は、BLOB
、CLOB
およびNCLOB
です。
一時LOB
一時LOBは、ローカル・アプリケーションの有効範囲内でのみLOBをインスタンス化する場合に作成されます。一時LOBは、アプリケーションの他のローカル変数と同様に一時LOBです。一時LOBは、表の行に挿入すると永続LOBになります。一時LOBのデータ型は、BLOB
、CLOB
およびNCLOB
です。
値LOBは、参照LOBに比べてパフォーマンスと管理性が高くなるように最適化された、特殊な種類の読取り専用一時LOBです。多くのアプリケーションでは、中規模オブジェクト(サイズが数MB程度)の格納にLOBが使用されるため、SQL問合せのコンテキストにおいてのみLOB値を読み取る必要があります。アプリケーションで大きいVARCHAR
またはRAW
データ型としてLOBを使用する場合には、値LOBを使用することをお薦めします。
BFILE
BFILE
は、オペレーティング・システム・ファイル内のデータベース表領域外に格納されたデータ・オブジェクトです。BFILE
型の表列に格納されたデータは、データベースではなくオペレーティング・システム・ファイルに物理的に置かれます。
BFILE
は読取り専用データ型です。データベースでは、BFILE
に格納されているデータに対する読取り専用のバイト・ストリーム・アクセスが可能です。アプリケーション内でBFILE
に対する書込みまたは更新を行うことはできません。
通常、BFILE
は次のデータの格納に使用します。
-
図形など、アプリケーションの実行中に変化しないバイナリ・データ
-
後で操作できるように
BLOB
やCLOB
のような他のラージ・オブジェクト型にロードされるデータ -
マルチメディアなど、バイト・ストリーム・アクセスに適したデータ
ハード・ディスク・ドライブ、CD-ROM、PhotoCDおよびDVDなど、オペレーティング・システムからアクセスする任意のストレージ・デバイスにBFILE
データを保持できます。データベースでは、オペレーティング・システムが、これらのオペレーティング・システム・ファイルへのストリーム・モード・アクセスをサポートしている場合、BFILE
にアクセスできます。
次の図に、様々な種類のLOBの間の関係をまとめます。

親トピック: LOBの分類
1.3.3 オブジェクト・データ型でのLOB
通常、LOB列またはオブジェクト・データ型でのLOBインスタンスのメンバーとしての使用に違いはありません。
このマニュアルでは、LOB属性はオブジェクト・データ型のメンバーであるLOBインスタンスを指します。特に明記しないかぎり、LOB列の説明はLOB属性にも該当します。
親トピック: LOBの分類
1.3.4 LOBに格納されるOracleデータ型
Oracle Databaseで提供される多くのデータ型は、LOB型として格納されるか、LOB型で作成されます。
次のリストに、LOB型とともに格納できるいくつかのデータ型を示します。
- 4000バイトを超えるサイズの
VARCHAR2
データ型またはRAW
データ型 JSON
データ型BINARY XML
またはCLOB
として格納されるXMLType
- LOBとして格納される
VARRAY
親トピック: LOBの分類