BLOBデータ型 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/zsn1556242031050.ditamap
dita:ditavalPath
ja-JP/zsn1556242031050.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

生バイトの大きな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
適切なデータ型、列記憶、または列制約属性。
BLOB列では、以下の属性がサポートされます。
  • NOT NULL
  • FORMAT
  • TITLE
NOT NULLの詳細は、デフォルト値の制御句を参照してください。FORMATおよびTITLEの詳細は、データ型の形式および形式句を参照してください。

ANSI準拠

BLOBは、ANSI SQL:2011に準拠しています。

外部表現

次の表は、Teradata SQL BLOBデータ型のクライアント表現をリストしています。

BLOB文字列の長さをkと定義します。ここで、0 ≤ k ≤ nです。

クライアントCPUアーキテクチャ クライアントの内部データ形式
IBMメインフレーム 8バイト(16ビットのSMALLINT)の長さカウントkとその後に続くkバイトのBYTEデータ。
  • UTS
  • RISC
  • Motorola 68000
  • WE 32000
  • Intel
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ローカル変数またはパラメータを使用するストアド プロシージャのインプリメンテーション
  • <Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「CREATE PROCEDURE」
  • Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148