Hitachi

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


5.1.5 自動採番機能を使用したデータロード

自動採番機能を使用してデータロードすると,表の列に,順序数生成子が生成する順序番号を格納できます。

自動採番機能を使用したデータロードを次の図に示します。

図5‒3 自動採番機能を使用したデータロード

[図データ]

[説明]

  1. 入力データファイルから,入力バッファにデータを読み込みます(ここでは,順序番号の取得方式としてバッファ単位取得方式を使用していると仮定します)。

  2. 読み込んだ行数分の順序番号を確保するため,順序数生成子をコールします。

  3. 順序数生成子では,確保した順序番号を返し,次に割り当てる値を現在値に設定します。

  4. pdloadは,入力バッファからデータを読み込みながら,取得した順序番号を含めて行データを組み立てます。

  5. 組み立てた行データをデータロードします。

自動採番機能を使用してデータロードする場合,入力データファイルは次のどれかの形式でなければなりません。

〈この項の構成〉

(1) 順序番号の格納方式

自動採番機能を使用してデータロードする場合,入力データファイル内の,順序番号を格納する列の扱いを選択できます。順序番号の格納方式には次の3種類があります。

列データ全置換:

順序番号を格納する列に対して,入力データファイル中の該当する列データをすべて順序番号に置き換えます。

列データ一部置換:

順序番号を格納する列に対して,入力データファイル中の該当する列データのうち,指定した置換条件に一致するデータだけ順序番号に置き換えます。

列データ追加:

順序番号を格納する列に対応するデータが入力データファイル中にない場合,順序番号を入力データとして追加します。なお,入力データファイルがバイナリ形式の場合,この方式は指定できません。

順序番号の格納方式は,列構成情報ファイル又はナル値・関数情報ファイルで指定します。

(2) 順序番号の取得方式

自動採番機能を使用してデータロードする場合,順序数生成子からの順序番号の取得タイミングと取得単位を選択できます。順序番号の取得方式には次の3種類があります。

全数一括取得方式:

データロード完了後に一括して順序数生成子の値を使用した順序番号にします。

指定単位取得方式:

指定した単位ごとに順序番号を取得しながらデータロードします。

バッファ単位取得方式:

入力データファイルの形式が固定長データ形式,バイナリ形式,又はpdload用アンロードファイルの場合,入力バッファに読み込める行数分の順序番号を取得しながらデータロードします。入力データファイルの形式がDAT形式,又は拡張DAT形式の場合,1行ごとに順序番号を取得しながらデータロードします。

(3) 順序番号を格納できるデータ型

順序番号は次のデータ型の列に格納できます。

これらのデータ型と順序数生成子のデータ型が異なる場合,pdloadがデータ変換してデータロードします。変換後のデータが列のデータ型として格納できない場合,データロードはエラーとなります。

(4) エラー時の処理

(a) 論理エラー発生時

入力データで論理エラーが発生した場合,エラーが発生する前に割り当てられた順序番号は欠番となります。

(b) データ変換エラー発生時

順序番号を格納できるデータ型」に示すデータ変換エラーが発生した場合,pdloadは-eオプションの指定有無に関係なく,エラー終了します。この場合,option文のdataerrオペランドの指定によって,それまでデータロードしたデータをコミットするか,又はロールバックするかを決定します。ロールバック指定の場合は,データロード中に使用した順序番号は欠番となります。

(5) 注意事項

自動採番機能を使用したデータロード実行時の注意事項を次に示します。