Hitachi

ノンストップデータベース HiRDB Version 9 コマンドリファレンス(Windows(R)用)


8.12.1 抽象データ型がある表

〈この項の構成〉

(1) 表のアンロード

抽象データ型がある表をアンロードする場合の注意事項を次に示します。

(a) LOB属性の抽象データ型が定義されている表のアンロードだけをする場合

  • 抽象データ型の列に定義されたプラグインがアンロード機能,又はコンストラクタ逆生成関数を持つ場合だけアンロードできます。

  • アンロードだけをする場合は-jオプションを指定してください。

(b) 別表,又は別システムへ表を移行するためのアンロードの場合

  • 同一システム内の別表へデータを移行する場合,移行元の表をアンロードしますが,プラグインによってはアンロード機能,又はコンストラクタパラメタ逆生成機能を持つときだけ移行できることがあります。移行可否については,各プラグインマニュアルを参照してください。

  • 別システムの表へデータを移行する場合,プラグインがコンストラクタパラメタ逆生成関数を持つときだけ移行できることがあります。移行可否については,各プラグインマニュアルを参照してください。

  • プラグインがコンストラクタ逆生成関数を持っている場合にアンロードするときは,unld_func文にコンストラクタ逆生成関数を指定する必要があります。

(c) 抽象データ型がある表の分割条件変更をする場合

  • 表の分割条件を変更する場合,まず変更前の表をアンロードします。プラグインによっては,アンロード機能,又はコンストラクタ逆生成機能を持つ場合にだけ,表の分割条件の変更ができることがあります。表の分割条件の変更可否については,各プラグインのマニュアルを参照してください。

  • プラグインがコンストラクタ逆生成関数を持っている場合にアンロードするときは,unld_func文にコンストラクタ逆生成関数を指定する必要があります。

(2) 表へのリロード

抽象データ型がある表をリロードする場合の注意事項を次に示します。

(a) LOB属性の抽象データ型が定義されている表の場合

アンロード時に-jオプションを指定している場合,リロード時も必ず-jオプションを指定してください。

(b) 別表,又は別システムの表の場合

  • 別表,又は別システムの表へリロードする場合,tblname文を指定します。

  • アンロード時にコンストラクタパラメタ逆生成関数を指定してアンロードしたアンロードデータファイルを使用する場合,reld_func文にコンストラクタ関数を指定する必要があります。コンストラクタ関数は,アンロード時に指定したコンストラクタパラメタ逆生成関数に対応していなければなりません。コンストラクタ関数とコンストラクタパラメタ逆生成関数の対応については,各プラグインのマニュアルを参照してください。

(c) 抽象データ型がある表の分割条件変更をする場合

アンロード時にコンストラクタパラメタ逆生成関数を指定してアンロードした場合,表の分割条件の変更後に,reld_func文にコンストラクタ関数を指定してリロードします。コンストラクタ関数を指定してリロードする場合,コンストラクタパラメタ逆生成関数を指定してアンロードしたアンロードデータファイルだけ使用できます。

なお,指定するコンストラクタ関数は,アンロード時に指定したコンストラクタパラメタ逆生成関数に対応していなければなりません。コンストラクタ関数とコンストラクタパラメタ逆生成関数の対応については,各プラグインのマニュアルを参照してください。

(3) pdrorgの機能と制御情報ファイルとの関係

pdrorgの機能と制御情報ファイルとの関係を次の表に示します。

表8‒41 pdrorgの機能と制御情報ファイルとの関係

pdrorgの機能

-kオプション

-jオプション

制御情報ファイル

unload文

lobunld文

tblname文

unld_func文

reld_func文

LOB列構成基表だけの再編成(1)

rorg

×

×

×

×

unld

reld

LOB列だけの再編成(3)

rorg

×

×

×

×

reld

LOB列構成基表,LOB列格納用RDエリア,及びLOB属性格納用RDエリアの再編成(1,2,及び3)

rorg

×

×

※2

※2

unld

※3

×

reld

×

※3

表の分割条件変更※1(1,2,及び3)

unld

×

×

×

reld

×

別表,又は別システムへの移行※1(1,2,及び3)

unld

×

×

×

reld

×

(凡例)

◎:必ず指定します。

○:任意に指定できます。

×:指定できません。

−:該当しません。

pdrorgの機能の括弧内の数字は,対象となるRDエリアを示しています。次の表定義の番号と対応しています。

CREATE TABLE …
    C1 INT,
    C2 SGMLTEXT ALLOCATE(sgmltext IN lob01)     2
    C3 BLOB(10K) IN LOB02                       3
    IN USER01                                   1
注※1

HiRDB/パラレルサーバの場合で,表を複数のバックエンドサーバに分割しているときは,-gオプションを指定する必要があります。

注※2

unld_func文,及びreld_func文を同時に指定する必要があります。

注※3

アンロード時に指定した場合は,リロード時にも必ず指定してください。

(4) アンロード元の表とリロード先の表で抽象データ型定義が異なる場合のリロード

別表への移行,又はプラグインのバージョンアップによる抽象データ型変更などで,アンロード元の表とリロード先の表とで抽象データ型定義が異なる場合があります。このような場合にリロードするときの注意事項を次に示します。

  1. 次の条件をすべて満たす場合はリロードできます。

    • アンロード時にunld_func文でコンストラクタパラメタ逆生成関数を指定してアンロードしたアンロードデータファイルを使用する場合

    • アンロード時に指定したコンストラクタパラメタ逆生成関数で逆生成されるパラメタ数とパラメタ属性がすべて一致したコンストラクタ関数を,reld_func文に指定する場合

  2. コンストラクタ関数を指定していない場合,アンロード表とリロード表とで次の項目が一致しているときはリロードできます。

    • 抽象データ型の名称

    • プラグインID

    • 属性の数

    • 属性のデータ型,及び定義長

    • LOB属性格納用RDエリア

(5) 表の分割条件を変更した場合のリロード

表の分割条件を変更してリロードする場合,プラグインによってはアンロード時にコンストラクタパラメタ逆生成関数を指定しなければならないものもあります。この場合,unld_func文にコンストラクタパラメタ逆生成関数を指定してアンロードし,表の分割条件を変更した後,reld_func文にコンストラクタ関数を指定してリロードする必要があります。

注意事項を次に示します。

(6) コンストラクタパラメタ逆生成関数を使用しないでアンロードした場合

コンストラクタパラメタ逆生成関数を使用しないでアンロードした場合,リロードが完了するまでプラグインの登録,及び削除はしないでください。