8.3.1 使用例

データベース再編成ユティリティの使用例の一覧(表のアンロード)を次に示します。

使用例内  容区分
例1横分割表の表単位のアンロード
  • アンロードデータファイルは,pdloadの入力データファイルとして利用するものとします。
  • アンロードデータファイルを一本化します。
P
例2表のアンロードとリロード
  • アンロードしてからリロードするまでの間に表分割条件を変更します。
例3表のアンロードとリロード
  • アンロードした表データを,別の表へリロードします。
例4抽象データ型(SGMLTEXT型)がある表のアンロードとリロード
  • アンロードしてからリロードするまでの間に表分割条件を変更します。
例5抽象データ型(SGMLTEXT型)がある表のアンロードとリロード
  • アンロードした表データを,別の表へリロードします。
例6固定長データ形式のpdload用入力データファイルの作成
  • 表のデータを,固定長データ形式のpdload用入力データファイルとしてアンロードします。
(凡例)
P:HiRDB/パラレルサーバ
<この項の構成>
(1) 横分割表の表単位のアンロード
(2) 表の表分割条件を変更する場合のアンロードとリロード
(3) 表データを別表に移行する場合のアンロードとリロード
(4) 抽象データ型がある表の表分割条件を変更する場合のアンロードとリロード
(5) 抽象データ型がある表の表データを別表に移行する場合のアンロードとリロード
(6) 固定長データ形式のpdload用入力データファイルの作成

(1) 横分割表の表単位のアンロード

例1
横分割表(TABLE1)を表単位にアンロードします。
アンロードしたデータは,pdloadの入力データファイル(バイナリ形式)として利用するものとします。また,アンロードデータファイルは一本化します。
表,及びインデクスは次のように定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
              IN ((PDBUSER01) C1 > 10,(PDBUSER02))

  • インデクスの定義(分割キーインデクス)

 CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))

  • インデクスの定義(非分割キーインデクス)

 CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
横分割表(TABLE1)を表単位にアンロードします。
-k unld:アンロードをするときの指定
- W bin:pdloadの入力データファイル(バイナリ形式)にする場合の指定
-g:アンロードデータファイルを一本化する場合の指定
-t TABLE1:アンロード対象の表の名称
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file1          1

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file1:アンロードデータファイルの名称

(2) 表の表分割条件を変更する場合のアンロードとリロード

例2
表(TABLE1)の表分割条件を変更するため,まず表をアンロードします。アンロードした後に表の表分割条件を変更して,その表にリロードします。
表,及びインデクスは次のように定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT) IN PDBUSER01

  • インデクスの定義(分割キーインデクス)

 CREATE INDEX INDEX1 ON TABLE1(C1) IN PDBUSER03

[概要]
[図データ]
1.表分割条件変更前の表のアンロード
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)をアンロードします。
-k unld:アンロードをするときの指定
-t TABLE1:アンロード対象の表の名称
-g:表分割条件を変更するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file                    1

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称

 

2.表(TABLE1)の表分割条件の変更
まず,表TABLE1をDROP TABLEで削除してください。
そして,表(TABLE1)の表分割条件を次のように定義し直します。また,インデクスも定義変更します。

CREATE TABLE TABLE1(C1 INT NOT NULL,
                    C2 CHAR(8),
                    C3 INT)
             IN ((PDBUSER01) C1 > 10,(PDBUSER02))
CREATE INDEX INDEX1 ON TABLE1(C1)
             IN ((PDBUSER03),(PDBUSER04))

 

3.表分割条件を変更した表へのリロード
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)へリロードします。
-k reld:リロードをするときの指定
-t TABLE1:リロード対象の表の名称
-g:表分割条件を変更するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file           1
idxwork bes1 c:¥hirdb¥pdrorg¥idxwork              2
idxwork bes2 c:¥hirdb¥pdrorg¥idxwork              2
sort bes1 c:¥hirdb¥pdrorg¥sortwork,8192           3
sort bes2 c:¥hirdb¥pdrorg¥sortwork,8192           3

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称
  2. インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定
    bes1,bes2:インデクス情報ファイルを作成するサーバの名称
    c:¥hirdb¥pdrorg¥idxwork:インデクス情報ファイル用ディレクトリの名称
  3. ソート用ワークディレクトリの指定
    bes1,bes2:ソート用ワークファイルを作成するサーバの名称
    c:¥hirdb¥pdrorg¥sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)

(3) 表データを別表に移行する場合のアンロードとリロード

例3
表(TABLE1)の表データを別表へ移行します。
表,及びインデクスは次のように定義されているものとします。
  • 移行元の表,及びインデクスの定義

 CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT) IN PDBUSER01
 CREATE INDEX INDEX1 ON TABLE1(C1) IN PDBUSER03

  • 移行先の表,及びインデクスの定義

 CREATE TABLE TABLE11(C1 INT NOT NULL,C2 CHAR(8),C3 INT) IN PDBUSER11
 CREATE INDEX INDEX11 ON TABLE11(C1) IN PDBUSER13

[概要]
[図データ]
1.移行元の表のアンロード
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)をアンロードします。
-k unld:アンロードをするときの指定
-t TABLE1:アンロード対象の表の名称
-g:別表へデータを移行するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file                    1

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称

 

2.移行先の表へのリロード(別表へのリロード)
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE11)へリロードします。
-k reld:リロードをするときの指定
-t TABLE11:リロード対象の表の名称
-g:別表へデータを移行するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file     1
idxwork bes2 c:¥hirdb¥pdrorg¥idxwork        2
sort bes2 c:¥hirdb¥pdrorg¥sortwork,8192     3
tblname TABLE1                              4

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称
  2. インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定
    bes2:インデクス情報ファイルを作成するサーバの名称
    c:¥hirdb¥pdrorg¥idxwork:インデクス情報ファイル用ディレクトリの名称
  3. ソート用ワークディレクトリの指定
    bes2:ソート用ワークファイルを作成するサーバの名称
    c:¥hirdb¥pdrorg¥sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
  4. 別表へ表データをリロードする場合の指定
    TABLE1:移行元の表の名称

(4) 抽象データ型がある表の表分割条件を変更する場合のアンロードとリロード

例4
抽象データ型(SGMLTEXT)がある表(TABLE1)の表分割条件を変更するため,まず表をアンロードします。アンロードした後に表の表分割条件を変更して,その表にリロードします。
なお,抽象データ型(SGMLTEXT)はHiRDB Text Search Plug-inで提供されています。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT,C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
                     PLUGIN'<DTD>sgml.dtd</DTD>' ) IN PDUSER01

[概要]
[図データ]
1.表分割条件変更前の表のアンロード
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)をアンロードします。
-k unld:アンロードをするときの指定
-t TABLE1:アンロード対象の表の名称
-j:LOB属性の抽象データ型がある表をアンロードするときの指定
-g:表分割条件を変更するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file                    1
unld_func type=SGMLTEXT,func=unsgmltext(sgmltext)          2

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称
  2. コンストラクタパラメタ逆生成関数の指定
    SGMLTEXT:抽象データ型名(列C2)
    unsgmltext:コンストラクタパラメタ逆生成関数の名称(ここでの名称は例なので,正式な名称については各種プラグインのマニュアルを参照してください)
    sgmltext:コンストラクタパラメタ逆生成関数の引数のデータ型

 

2.表(TABLE1)の表分割条件の変更
まず,表TABLE1をDROP TABLEで削除してください。
そして,表(TABLE1)の表分割条件を次のように定義し直します。

CREATE TABLE TABLE1(C1 INT NOT NULL,
                   C2 SGMLTEXT ALLOCATE
                      (SGMLTEXT IN ((LOBUSER01),(LOBUSER02)))
                       PLUGIN'<DTD>sgml.dtd</DTD>' )
   IN ((PDUSER01) C1<2000,(PDBUSER02))

 

3.表分割条件を変更した表へのリロード
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)へリロードします。
-k reld:リロードをするときの指定
-t TABLE1:リロード対象の表の名称
-j:LOB属性の抽象データ型がある表をリロードするときの指定
-g:表分割条件を変更するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file              1
reld_func type=SGMLTEXT,func=sgmltext(blob)          2

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称
  2. コンストラクタ関数の指定
    SGMLTEXT:抽象データ型名(列C2)
    sgmltext(blob):コンストラクタ関数の名称(括弧内はコンストラクタ関数の引数のデータ型)

(5) 抽象データ型がある表の表データを別表に移行する場合のアンロードとリロード

例5
抽象データ型(SGMLTEXT)がある表(TABLE1)の表データを別表に移行します。
なお,抽象データ型(SGMLTEXT)はHiRDB Text Search Plug-inで提供されています。
  • 移行元の表の定義

 CREATE TABLE TABLE1(C1 INT,
                     C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
                       PLUGIN'<DTD>sgml.dtd</DTD>'
                     C3 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER02)
                       PLUGIN'<DTD>sgml.dtd</DTD>'
                     ) IN PDUSER01

  • 移行先の表の定義

 CREATE TABLE TABLE2(C1 INT,
                     C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER03)
                       PLUGIN'<DTD>sgml.dtd</DTD>'
                     C3 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER04)
                       PLUGIN'<DTD>sgml.dtd</DTD>'
                     ) IN PDUSER02

[概要]
[図データ]
1.移行元の表のアンロード
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)をアンロードします。
-k unld:アンロードをするときの指定
-t TABLE1:アンロード対象の表の名称
-j:LOB属性の抽象データ型がある表をアンロードするときの指定
-g:別表へデータを移行するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file                    1
unld_func type=SGMLTEXT,func=unsgmltext(sgmltext)          2

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称
  2. コンストラクタパラメタ逆生成関数の指定
    SGMLTEXT:抽象データ型名(列C2)
    unsgmltext:コンストラクタパラメタ逆生成関数の名称(ここでの名称は例なので,正式な名称については各種プラグインのマニュアルを参照してください)
    sgmltext:コンストラクタパラメタ逆生成関数の引数のデータ型

 

2.移行先の表へのリロード(別表へのリロード)
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE2)へリロードします。
-k reld:リロードをするときの指定
-t TABLE2:リロード対象の表の名称
-j:LOB属性の抽象データ型がある表をリロードするときの指定
-g:別表へデータを移行するときの指定
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file              1
reld_func type=SGMLTEXT,func=sgmltext(blob)          2
tblname TABLE1                                       3

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称
  2. コンストラクタ関数の指定
    SGMLTEXT:抽象データ型名(列C2)
    sgmltext(blob):コンストラクタ関数の名称(括弧内はコンストラクタ関数の引数のデータ型)
  3. 別表へ表データをリロードする場合の指定
    TABLE1:移行元の表の名称

(6) 固定長データ形式のpdload用入力データファイルの作成

例6
表「商品表」のデータを,固定長データ形式のpdload用入力データファイルとしてアンロードします。
  • 表の定義

 CREATE TABLE 商品表
       (商品番号 SMALLINT NOT NULL,商品名 NVARCHAR(12),数量 INTEGER)

IN ((RDAREA1)商品番号<=10000,(RDAREA2)商品番号<=20000,(RDAREA3));
[pdrorgのコマンド]

pdrorg -k unld -t 商品表 -W fixtext,@,cr c:¥hirdb¥pdrorg¥control_file

[説明]
-k unld:アンロードをするときの指定
-t 商品表:アンロード対象の表の名称
-W fixtext,@,cr:固定長データ形式のpdload用入力データファイルとしてアンロードする場合の指定(パディング文字は@で,1バイトの改行コードを付けます)
c:¥hirdb¥pdrorg¥control_file:制御情報ファイルの名称
[制御情報ファイル(c:¥hirdb¥pdrorg¥control_file)の内容]

unload bes1:c:¥hirdb¥pdrorg¥unload_file                                 1
fixtext_option enclose=" format=integer,type1 format=smallint,type2     2

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    c:¥hirdb¥pdrorg¥unload_file:アンロードデータファイルの名称
  2. 出力データを編集する場合の指定
    enclose=":データ型がNVARCHARの列「商品名」のデータを,囲み文字「"」で囲みます。
    format=integer,type1:データ型がINTEGERの列「数量」のデータを,出力形式type1で出力します。
    format=smallint,type2:データ型がSMALLINTの列「商品番号」のデータを,出力形式type2で出力します。
[出力データ]

商品番号        商品名                       数量
(6バイト)       (14バイト)                  (11バイト)              (1バイト)

###100          "BOOTS"@@@@@@@              @@@@@@@@@@@           改行文字
@@@@@@          ""@@@@@@@@@@@@              #0000000100​           改行文字
-12345          @@@@@@@@@@@@@@              -0000000300​           改行文字

#は空白文字です。また,1行は32バイトです。