【Oracle】BLOB・BFILE バイナリデータ型の違い

バイナリデータ型 BLOB・BFILE・RAW・LONG RAW

Oracleのバイナリデータ型は BLOB・BFILE・RAW・LONG RAWがあります。

  • BLOB
  • BFILE
  • RAW
  • LONG RAW

それぞれどのような違いがあるのか解説します。(Oracle12c)

RAW

RAWはバイナリデータを扱う可変長のデータ型です。

MAX_STRING_SIZE = EXTENDEDの場合の場合、最大32,767バイト。MAX_STRING_SIZE = STANDARDの場合、最大2,000バイト。

LONG RAW

LONG LAWは図形、音声、文書、またはバイナリ・データなどを扱う可変長のデータ型です。

古い型であるため、BLOB型を使うことが推奨されます。

最大2GB。

BLOB

BLOBは大きなバイナリデータを扱うデータ型です。

最大は4GBから1を引いたバイト数にデータベース・ブロック・サイズを掛けた値。

BFILE

データベース外部のファイルを参照するバイナリデータ型です。ファイルそのものを格納するわけではなく、ファイルへのディレクトリやファイル名などが別名として格納されます。

当然ですが、外部ファイルが存在し、Oracleのプロセスがファイルに対するOSの読取り権限を持っていないといけません。

最大は4GB。

Oracleのバイナリデータ型まとめ

Oracleのバイナリデータ型をまとめます。

特徴 サイズ
RAW 小さなバイナリ 2,000
LONG RAW やや大きなバイナリ 2GB
BLOB 大きなバイナリ 4GB以上
BFILE 外部ファイルを参照する 4GB

以上、Oracleのバイナリデータ型 BLOB・BFILE・RAW・LONG RAWでした。

コメント