5.13.1 HiRDB/シングルサーバの場合

<この項の構成>
(1) 表へのデータロード
(2) 横分割表への表単位のデータロード
(3) 横分割表へのRDエリア単位のデータロード
(4) 入力データファイルがユティリティ専用ユニットにある場合のデータロード
(5) LOB列構成基表とLOB列のデータロード
(6) LOB列構成基表だけのデータロード
(7) LOB列だけのデータロード
(8) 監査証跡表へのデータロード
(9) 自動採番機能を使用したデータロード

(1) 表へのデータロード

例1
表(TABLE1)にデータロードします。この例では,入力データファイルがDAT形式の場合と,固定長データ形式の場合について説明します。
なお,次の表及びインデクスが定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT,C2 CHAR(8),C3 INT) IN PDB
USER01

  • インデクスの定義

 CREATE INDEX INDEX1 ON TABLE1(C1) IN PDBUSER03

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
(a) 入力データファイルがDAT形式の場合
[入力データファイルの内容]

1,ABCDEFG,99999,
2,a,-1,
3,XYZ,100,
    :

[実行するコマンドの説明]
表(TABLE1)へデータロードします。
column_inf:列構成情報ファイルの名称
control_file:制御情報ファイルの名称
[列構成情報ファイル(column_inf)の内容]

C1                  1
C2                  1
C3                  1
*skipdata*          2

[説明]
  1. 入力データをTABLE1の列(C1,C2,C3)の順に格納
  2. 行の末尾のセパレータ文字を無視させるためのスキップデータ文
[制御情報ファイル(control_file)の内容]

source /usr/load_file1 error=/usr/err1          1
index INDEX1 /usr/index_inf1                    2
sort /usr/sortwork,8192                         3

[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    /usr/load_file1:入力データファイルの名称
    /usr/err1:エラー情報ファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX1:インデクス識別子
    /usr/index_inf1:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(b) 入力データファイルが固定長データ形式の場合
[入力データファイルの内容]

1  ABCDEFG  99999
2  a        -1
3  XYZ      100
      :

注 行末に改行記号があります。

[実行するコマンドの説明]
表(TABLE1)へデータロードします。
-a:入力データファイルが固定長データ形式の場合の指定
column_inf:列構成情報ファイルの名称
control_file:制御情報ファイルの名称
[列構成情報ファイル(column_inf)の内容]

C1,type=char(3)              1
C2,type=char(8)              1
C3,type=char(6)              1
*skipdata*,length=1          2

[説明]
  1. 入力データの列のデータ型を記述
  2. 改行記号を格納しないようにするためのスキップデータ文
[制御情報ファイル(control_file)の内容]

source /usr/load_file1 error=/usr/err1          1
index INDEX1 /usr/index_inf1                    2
sort /usr/sortwork,8192                         3

[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    /usr/load_file1:入力データファイルの名称
    /usr/err1:エラー情報ファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX1:インデクス識別子
    /usr/index_inf1:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(c) 入力データファイルが固定長データ形式固有のデータ形式の場合
表(TABLE2)にデータロードします。この例では,入力データファイルが固定長データ形式固有のデータ形式の場合について説明します。
  • 表の定義

 CREATE TABLE TABLE2(C1 DECIMAL(7,2),
                     C2 CHAR(10),
                     C3 DECIMAL(10,4));

[入力データファイル(/usr/input_file)の内容]
バイナリエディタで参照した場合の入力データファイルの内容です。16進数で表現されています。データの先頭から7バイトがC1列に格納されるデータです。8バイト~17バイトがC2列に,18バイト~22バイトがC3列に格納されます。

303030303130304142434445464748494​a00000001​
202020202020206162636465666768696​a00000002​
303030303330302020202020202020202000000003​

[実行するコマンドライン]

pdload -a -c column_inf TABLE2 control_file

[実行するコマンドの説明]
表(TABLE2)へデータロードします。
-a:入力データファイルが固定長データ形式の場合の指定
column_inf:列構成情報ファイルの名称
control_file:制御情報ファイルの名称
[列構成情報ファイル(column_inf)の内容]

C1,type=adec(7,2)            1
C2,type=char(10)             2
C3,type=bdec(4)              3

[説明]
  1. 文字列形式の数値で記述した,小数点の無いデータの長さは7バイト,後方から2バイトは小数点以下の値としてDECIMAL(7,2)に格納
  2. 長さ10バイトのデータをCHAR(10)に格納
  3. 長さ4バイトの領域に格納した2進数のデータをDECIMAL(10,4)に格納
[制御情報ファイル(control_file)の内容]

option allspace=zero                                         1
source /usr/input_file error=/usr/err                        2

[説明]
  1. DECIMAL列に格納する入力データが空白の場合,「0」を格納する指定
  2. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定

(2) 横分割表への表単位のデータロード

例2
横分割表(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))

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

 CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
横分割表(TABLE1)へ表単位にデータロードします。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

source /usr/load_file1 error=/usr/err1 errdata=/usr/err_data,1000   1
idxwork /usr/idx_file                                               2
sort /usr/sortwork,8192                                             3

[説明]
  1. 入力データファイル,及び入力データエラーがあった場合のエラー情報とエラーとなった行データを出力するファイルの指定(ただし,入力データエラーの出力は1000件までとします)
    /usr/load_file1:入力データファイルの名称
    /usr/err1:エラー情報ファイルの名称
    /usr/err_data:エラーデータファイルの名称
  2. インデクス情報ファイルを作成するディレクトリの指定
    /usr/idx_file:インデクス情報ファイルを作成するディレクトリの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)

(3) 横分割表へのRDエリア単位のデータロード

例3
横分割表(TABLE1)に,RDエリア単位にデータロードします。PDBUSER01,及びPDBUSE02に対して,2回実行します。
なお,次の表及びインデクスが定義されているものとします。
  • 表の定義

 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))

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

 CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
(a) PDBUSER01へのデータロード
[実行するコマンドの説明]
横分割表(TABLE1)へRDエリア(PDBUSER01)単位にデータロードします。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

source PDBUSER01 /usr/load_file1 error=/usr/err1          1
idxwork /usr/idx_file                                     2
sort /usr/sortwork,8192                                   3

[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    PDBUSER01:入力データを格納する表があるRDエリアの名称
    /usr/load_file1:入力データファイルの名称
    /usr/err1:エラー情報ファイルの名称
  2. インデクス情報ファイルを作成するディレクトリの指定
    /usr/idx_file:インデクス情報ファイルを作成するディレクトリの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(b) PDBUSER02へのデータロード
[実行するコマンドの説明]
横分割表(TABLE1)へRDエリア(PDBUSER02)単位にデータロードします。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

source PDBUSER02 /usr/load_file2 error=/usr/err2          1
idxwork /usr/idx_file                                     2
sort /usr/sortwork,8192                                   3

[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    PDBUSER02:入力データを格納する表があるRDエリアの名称
    /usr/load_file2:入力データファイルの名称
    /usr/err2:エラー情報ファイルの名称
  2. インデクス情報ファイルを作成するディレクトリの指定
    /usr/idx_file:インデクス情報ファイルを作成するディレクトリの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(c) INDEX2の作成

INDEX2はこのままでは使用できません。

インデクス情報を出力したインデクス情報ファイル3,及びインデクス情報ファイル4を使用して,pdrorgでインデクスの一括作成(-k ixmk)をしてください。

(4) 入力データファイルがユティリティ専用ユニットにある場合のデータロード

例4
横分割表(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))

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
横分割表(TABLE1)へ表単位にデータロードします。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

source host1:/usr/load_file1 error=/usr/err1          1
index INDEX1 PDBUSER03 /usr/index_inf1                2
index INDEX1 PDBUSER04 /usr/index_inf2                2
sort /usr/sortwork,8192                               3

[説明]
  1. 入力データファイル,及び入力データにエラーがあった場合にエラーを出力するファイルの指定
    host1:入力データファイルがあるホストの名称
    /usr/load_file1:入力データファイルの名称
    /usr/err1:エラー情報ファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX1:インデクス識別子
    PDBUSER03,PDBUSER04:インデクスを格納するRDエリアの名称
    /usr/index_inf1,/usr/index_inf2:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)

(5) LOB列構成基表とLOB列のデータロード

例5
LOB列がある表(TABLE2)に対して,LOB列構成基表とLOB列を同時にデータロードします。
なお,次の表及びインデクスが定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE2(C1 INT,C2 BLOB IN LOBUSER01) IN PDBUSER01

  • インデクスの定義

 CREATE INDEX INDEX2 ON TABLE2(C1) IN PDBUSER02

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
LOB列がある表(TABLE2)へ表単位にデータロードします。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

source /usr/load_file1 error=/usr/err1                         1
index INDEX2 /usr/index_inf1                                   2
sort /usr/sortwork,8192                                        3
lobdata /usr/lob                                               4
lobmid /usr/lobmid_file1                                       5

[説明]
  1. 入力データファイル,及び入力データにエラーがあった場合にエラーを出力するファイルの指定
    /usr/load_file1:入力データファイルの名称
     入力データファイルの内容(DAT形式)
    1,lobfile1
    2,lobfile2
    3,lobfile3
    /usr/err1:エラー情報ファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX2:インデクス識別子
    /usr/index_inf1:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
  4. LOB入力ファイルのディレクトリの指定
    /usr/lob:LOB入力ファイルのパス名
  5. LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力するファイルの指定(これをLOB列のデータロード時にそのまま使用します)
    /usr/lobmid_file1:LOB中間ファイルの名称

(6) LOB列構成基表だけのデータロード

例6
LOB列がある表(TABLE2)に対して,LOB列構成基表だけをデータロードします。
なお,次の表及びインデクスが定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE2(C1 INT,C2 BLOB IN LOBUSER01) IN PDBUSER01

  • インデクスの定義

 CREATE INDEX INDEX2 ON TABLE2(C1) IN PDBUSER02

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
LOB列がある表(TABLE2)へ表単位にデータロードします。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

source /usr/load_file1 error=/usr/err1                         1
index INDEX2 /usr/index_inf1                                   2
sort /usr/sortwork,8192                                        3
lobmid /usr/lobmid_file1                                       4

[説明]
  1. 入力データファイル,及び入力データにエラーがあった場合にエラーを出力するファイルの指定
    /usr/load_file1:入力データファイルの名称
     入力データファイルの内容(DAT形式)
    1,lobfile1
    2,lobfile2
    3,lobfile3
    /usr/err1:エラー情報ファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX2:インデクス識別子
    /usr/index_inf1:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
  4. LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力するファイルの指定
    /usr/lobmid_file1:LOB中間ファイルの名称

(7) LOB列だけのデータロード

例7
LOB列がある表(TABLE2)に対して,LOB列だけをデータロードします。
なお,次の表及びインデクスが定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE2(C1 INT,C2 BLOB IN LOBUSER01) IN PDBUSER01

  • インデクスの定義

 CREATE INDEX INDEX2 ON TABLE2(C1) IN PDBUSER02

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
LOB列がある表(TABLE2)へ表単位にデータロードします。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

lobdata /usr/lob                                                 1
lobmid /usr/lobmid_file1 error=/usr/err1                         2

[説明]
  1. LOB入力ファイルのディレクトリの指定
    /usr/lob:LOB入力ファイルのパス名
    LOB列構成基表データロード時に次の入力データファイルを使用したものとします。
     入力データファイルの内容(DAT形式)
    1,lobfile1
    2,lobfile2
    3,lobfile3
  2. LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力したファイル,及びLOB入力エラーがあった場合にエラーを出力するファイルの指定
    /usr/lobmid_file1:LOB中間ファイルの名称
    /usr/err1:エラー情報ファイルの名称

(8) 監査証跡表へのデータロード

例8
監査証跡表(SQL_AUDIT_TRAIL)に対して,データロード待ちの監査証跡ファイルをデータロードします。なお,監査証跡表にはインデクスが定義されていないものとします。
[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
監査証跡表(SQL_AUDIT_TRAIL)に対して,データロード待ちの監査証跡ファイル(/hirdb/audit/file)をデータロードします。
-b及び-W:監査証跡表へデータロードする場合に必ず指定するオプションです。
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

source (uoc)                                       1
srcuoc param='dir=/hirdb/audit/file,file=all'      2

[説明]
  1. 監査証跡データ登録UOCを使用する場合の指定
  2. 監査証跡データ登録UOCに渡すパラメタの指定
    dir=/hirdb/audit/file:監査証跡ファイルのHiRDBファイル名
    file=all:データロード待ちのすべての監査証跡ファイルを対象とするため,allを指定

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

例9
表(TABLE1)に,指定単位取得方式でデータロードします。このとき,C2列に列データとして順序番号を追加します。
なお,次の表及び順序数生成子が定義されているものとします。
  • 表の定義

 CREATE TABLE USER01.TABLE1(C1 INT,C2 INT,C3 VARCHAR(10)) IN PDBUSER01

  • 順序数生成子の定義
CREATE SEQUENCE USER01.SEQ_A1
AS INTEGER START WITH 1 INCREMENT BY 1 MAXVALUE 9999 CYCLE IN PDBUSER01
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)へデータロードします。
column_inf:列構成情報ファイルの名称
control_file:制御情報ファイルの名称
[列構成情報ファイル(column_inf)の内容]

C1                               1
C3                               1
*adddata*                        2
C2,sequence=(USER01.SEQ_A1)      3

[説明]
  1. 入力データをTABLE1の列(C1,C3)に格納
  2. これ以降の指定が入力データの追加であることを示す追加データ文
  3. 順序数生成子(USER01.SEQ_A1)が生成した順序番号を列C2に格納
[制御情報ファイル(control_file)の内容]

source /usr/load_file1           1
option seq_range=1000               2

[説明]
  1. 入力データファイルの指定
    /usr/load_file1:入力データファイルの名称
  2. 順序番号の取得方式の指定(指定単位取得方式)
    seq_range=1000:データロード時に1000個ずつ順序番号を取得するための指定