スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)

[目次][索引][前へ][次へ]

5.7.4 記述例

列構成情報ファイルの記述例を次に示します。

<この項の構成>
(1) DAT形式
(2) 固定長データ形式
(3) pdrorg出力バイナリ形式

(1) DAT形式

(a) 入力データファイル中に不要なデータが含まれる場合

表定義:
 
CREATE TABLE T1 (COL1 INTEGER,COL2 DATE,COL3 CHAR(10));
 

入力データファイル及び列構成情報ファイル:
[図データ]
(b) 順序数生成子を使用した場合

順序数生成子(USER01.SEQ_B01)から順序番号を生成し,COL03に格納する例について示します。

表定義:
 
CREATE TABLE T1 (COL1 INTEGER,
                 COL2 CHAR(10),
                 COL3 DECIMAL(10),
                 COL4 INTEGER);
 

入力データファイル:
 
1,ABC,2500
2,DEF,30000
3,GHI,10
   :
 

列構成情報ファイル:
 
COL1
COL2
COL4
*adddata*
COL3,sequence=(USER01.SEQ_B01)
 

(2) 固定長データ形式

表定義:
 
CREATE TABLE T1 (COL1 INTEGER,COL2 DATE,COL3 CHAR(10));
 

入力データファイル及び列構成情報ファイル:
[図データ]

(3) pdrorg出力バイナリ形式

LOB属性を含むSGMLTEXT型の列がある表T1と,BLOB型の列がある表T2を例にして,表T1のアンロードデータを表T2にデータロードする場合について説明します。なお,説明中の表定義は,列名及びデータ型の指定部分だけで,ほかの指定部分は省略しています。

(a) T1とT2の列定義の順序が異なる場合
(b) T2の列がT1より少ない場合
(c) T2の列がT1より多い場合
(d) 列データを入れ替える場合

T1のSGMLTEXT型列のLOB属性のデータ(C2)をT2のLOB列(C6)に,T1のLOB列のデータ(C3)をT2のSGMLTEXT型列のLOB属性(C5)に,それぞれ入れ替えます。

(e) 列のデータ型を変更する場合

SGMLTEXT型列のLOB属性のデータ(C2)をSGMLBIN型列のBINARY属性(C5)に,LOB列のデータ(C3)をBINARY型列(C6)にデータロードします。

(f) T1とT2の列定義が異なる場合

CHARACTER型の定義長を,10から21に拡張してデータロードします。

(g) データ変換をする場合に必要となる領域

データ変換をする場合,データ変換後のBINARY型データ,抽象データ型のBINARYパラメタデータ,及び抽象データ型のBLOBパラメタデータのデータの間にBLOBデータが入るような並びになったときは,そのBLOBデータ保持するためにメモリを確保する必要があります。メモリを確保できない場合は,メモリ確保エラーで終了します。次のような場合に,メモリの確保が必要となります。

BINARY型の列,BLOB属性の抽象データ型列,及びBLOB型の列を定義した表から出力した,pdrorg出力バイナリ形式の入力データファイルのデータの並びを次の図に示します。

図5-27 pdrorg出力バイナリ形式の入力データファイルのデータの並び

[図データ]

[説明]
pdloadでは,入力データ領域として少なくともMの領域を確保します。領域は,格納先の表定義からMの最大長を算出して確保します(source文のmacreclenオペランドで,任意にこの長さを指定することもできます)。
データがこの並びのままデータロードする場合は,データを順番に処理するため,pdloadはこれ以上入力データを保持するための領域は確保しません。
列構成情報ファイルでデータの変換を指定した場合,pdloadはM+M2+Kの領域を確保します。入力データ領域として,M+M2の領域を確保しますが,更にBINARY型に変換した部分より前のBLOBデータ部分も保持する必要があるため,Kの領域も確保します。Kの部分の領域は,option文のbloblimitオペランドで指定できます。格納先の表定義から算出した値,又はoption文のbloblimitオペランドの指定値のうち,小さい方の値で領域を確保します。