生バイトの大きな2進数文字列を表わします。BLOB (Binary Large Object)列には、グラフィック、ビデオ クリップ、ファイル、および文書などの2進数オブジェクトを保管することができます。
構文
{ BINARY LARGE OBJECT | BLOB } [ ( n [ K | M | G ] ) ] [ attribute [...] ]
- n
- BLOB列に割り振る文字数。nを指定しない場合のデフォルトの最大バイト数は2097088000になります。
- K
- nをキロバイト(KB)数で指定します。Kを指定する場合、nは2047937を越えてはなりません。
- M
- nをメガバイト(MB)数で指定します。Mを指定する場合、nは1999を越えてはなりません。
- G
- nをギガバイト(GB)数で指定します。Gを指定する場合、nは1でなければなりません。
- attribute
- 適切なデータ型、列記憶、または列制約属性。
ANSI準拠
BLOBは、ANSI SQL:2011に準拠しています。
外部表現
次の表は、Teradata SQL BLOBデータ型のクライアント表現をリストしています。
BLOB文字列の長さをkと定義します。ここで、0 ≤ k ≤ nです。
クライアントCPUアーキテクチャ | クライアントの内部データ形式 |
---|---|
IBMメインフレーム | 8バイト(16ビットのSMALLINT)の長さカウントkとその後に続くkバイトのBYTEデータ。 |
|
8バイト(16ビットのSMALLINT)の長さカウントkとその後に続くkバイトのBYTEデータ。 |
制限
テーブルのLOB列の最大許容数は32です。
LOB列をインデックスの構成要素にすることはできません。この制約のために、少なくとも1つのLOB以外の列をテーブルに定義する必要があります。
キュー テーブルにはBLOB列を含めることができません。
BLOBを処理する関数
以下に、BLOB型をサポートするいくつかの関数および演算子を示します。
- BYTES
- 連結演算子(||)
- SUBSTRING/SUBSTR
- TYPE
- 明示的なデータ型変換(CASTおよびTeradataの変換構文)
- ユーザー定義関数(UDF)
- ストアド プロシージャ
- 外部ストアド プロシージャ
例: BLOBデータ型
以下の例は、blargeというBLOB列を定義するテーブルを作成します。
CREATE TABLE t1 (id INTEGER ,blarge BLOB(128K));
例: BLOBデータの挿入
以下の例は、BLOBのある部分を1つのテーブルに挿入し、BLOBの残りの部分を別のテーブルに挿入するストアド プロシージャを示しています。
CREATE TABLE LocalData(ld_ID INTEGER, ld_DATA BLOB); CREATE TABLE GlobalData (gd_ID INTEGER, gd_DATA BLOB); CREATE PROCEDURE DataSplitter(IN local_ID INTEGER, IN global_ID INTEGER, IN all_DATA BLOB) BEGIN INSERT LocalData (local_ID, SUBSTRING(all_DATA FROM 1 FOR 128546)); INSERT GlobalData (global_ID, SUBSTRING(all_DATA FROM 128547)); END;
関連トピック
詳細情報 | 参照先 |
---|---|
BLOBタイプをサポートする関数と演算子 | Teradata Vantage™ - SQL関数、式、および述部、B035-1145。 |
BLOBを処理するUDFと外部ストアド プロシージャのインプリメンテーション | Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147。 |
BLOBローカル変数またはパラメータを使用するストアド プロシージャのインプリメンテーション |
|