マルチメディアデータを格納する表の場合も、格納領域指定の方法や、表のDSO名やDSI名の命名は、文字や数値を扱う表の場合と同じです。以下にマルチメディアデータを格納する表の格納領域指定の例と、表の格納構造について示します。表のDSO名およびDSI名の命名については、“2.6.3 表定義”を参照してください。
マルチメディアデータを格納する表の格納領域指定
CREATE TABLE S1.製品写真表 (製品番号 SMALLINT PRIMARY KEY NOT NULL,
製品写真 BLOB(1M) NOT NULL )
ON DBSPACE1
↑
格納領域指定
上記の指定は、動作環境ファイルのDEFAULT_DSI_TYPEの指定により以下の定義をしたのと同じ意味になります。
DEFAULT_DSI_TYPE = SEQUENTIALの場合
CREATE TABLE S1.製品写真表(製品番号 SMALLINT PRIMARY KEY NOT NULL, 製品写真 BLOB(1M) NOT NULL); CREATE DSO #S1@製品写真表 FROM S1.製品写真表 TYPE SEQUENTIAL(PAGESIZE(32),ORDER(1)); CREATE DSI #S1@製品写真表 DSO #S1@製品写真表 ALLOCATE DATA ON DBSPACE1 SIZE 700000K;
備考. 動作環境ファイルのDEFAULT_TABLE_SIZEで表のデータ格納域の割付け量に700000Kバイトを指定している場合の例です。データベーススペースの割付け量は、データ格納域に指定した割付け量以上が必要です。
DEFAULT_DSI_TYPE = OBJECTの場合
CREATE TABLE S1.製品写真表(製品番号 SMALLINT PRIMARY KEY NOT NULL, 製品写真 BLOB(1M) NOT NULL); CREATE DSO #S1@製品写真表 FROM S1.製品写真表 TYPE OBJECT(PAGESIZE(32)); CREATE DSI #S1@製品写真表 DSO #S1@製品写真表 ALLOCATE DATA ON DBSPACE1 SIZE 700000K;
備考. 動作環境ファイルのDEFAULT_OBJECT_TABLE_SIZEで表データ格納域の割付け量に700000Kバイトを指定している場合の例です。データベーススペースの割付け量は、データ格納域に指定した割付け量以上が必要です。
表の形式が下記の条件以外の場合は、SEQUENTIAL構造になります。
表の形式が以下の条件をすべて満たしている場合は、OBJECT構造になります。この場合は、動作環境ファイルのDEFAULT_DSI_TYPEの指定により、SEQUENTIAL構造に変更できます。本パラメタの指定を省略すると、OBJECTが指定されたとみなします。
表の最後に1つだけ、BLOB型でサイズに32キロバイト以上を指定している場合
BLOB型以外の列は固定長属性の場合
BLOB型の列にNOT NULL制約を指定している場合
SEQUENTIAL構造の場合は、動作環境ファイルのDEFAULT_TABLE_SIZEで指定したページ長となります。ページ長には32キロバイトを指定することを推奨します。OBJECT構造の場合は32キロバイトとなります。
SEQUENTIAL構造の場合は、動作環境ファイルのDEFAULT_TABLE_SIZEで指定した、表のデータ格納域の割付け量となります。扱うデータ量を考慮して十分な値を指定してください。OBJECT構造の場合は、動作環境ファイルのDEFAULT_OBJECT_TABLE_SIZEで指定した、表のデータ格納域の割付け量となります。扱うデータ量を考慮して十分な値を指定してください。
割付け対象のデータベーススペースに、割付け量分の連続領域が存在しない場合、複数の領域に分割して割付けることがあります。複数の領域に分割されたかどうかは、rdbprtコマンドの出力結果で確認できます。DSI情報のAllocation informationのAllocate sizeに、指定した割付け量以下の値が表示された場合、複数の領域に分割して割付けられたと判断できます。
参照
rdbprtコマンドの詳細については、“コマンドリファレンス”を参照してください。
格納構造の詳細については、“2.7 格納構造の定義”を参照してください。