Hitachi

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


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

〈この項の構成〉

(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)へデータロードします。

c:¥hirdb¥pdload¥column_inf:列構成情報ファイルの名称

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[列構成情報ファイル(c:¥hirdb¥pdload¥column_inf)の内容]
 C1                  1
 C2                  1
 C3                  1
 *skipdata*          2
[説明]
  1. 入力データをTABLE1の列(C1,C2,C3)の順に格納

  2. 行の末尾のセパレータ文字を無視させるためのスキップデータ文

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source c:\hirdb\pdload\load_file1 error=c:\hirdb\pdload\err1   1
 index INDEX1 c:\hirdb\pdload\index_inf1                        2
 sort c:\hirdb\pdload\sortwork                                  3
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定

    c:¥hirdb¥pdload¥load_file1:入力データファイルの名称

    c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称

  2. インデクス情報を出力するインデクス情報ファイルの指定

    INDEX1:インデクス識別子

    c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称

  3. ソート用ワークディレクトリの指定

    c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称

(b) 入力データファイルが固定長データ形式の場合

[入力データファイルの内容]
 1  ABCDEFG  99999
 2  a        -1
 3  XYZ      100
       :

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

[実行するコマンドの説明]

表(TABLE1)へデータロードします。

-a:入力データファイルが固定長データ形式の場合の指定

c:¥hirdb¥pdload¥column_inf:列構成情報ファイルの名称

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[列構成情報ファイル(c:¥hirdb¥pdload¥column_inf)の内容]
 C1,type=char(3)              1
 C2,type=char(8)              1
 C3,type=char(6)              1
 *skipdata*,length=1          2
[説明]
  1. 入力データの列のデータ型を記述

  2. 改行記号を格納しないようにするためのスキップデータ文

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source c:\hirdb\pdload\load_file1 error=c:\hirdb\pdload\err1   1
 index INDEX1 c:\hirdb\pdload\index_inf1                        2
 sort c:\hirdb\pdload\sortwork                                  3
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定

    c:¥hirdb¥pdload¥load_file1:入力データファイルの名称

    c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称

  2. インデクス情報を出力するインデクス情報ファイルの指定

    INDEX1:インデクス識別子

    c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称

  3. ソート用ワークディレクトリの指定

    c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称

(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列に格納されます。

303030303130304142434445464748494a00000001
202020202020206162636465666768696a00000002
303030303330302020202020202020202000000003
[実行するコマンドライン]
pdload -a -c c:\hirdb\pdload\column_inf TABLE2 c:\hirdb\pdload\control_file
[実行するコマンドの説明]

表(TABLE2)へデータロードします。

-a:入力データファイルが固定長データ形式の場合の指定

c:¥hirdb¥pdload¥column_inf:列構成情報ファイルの名称

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[列構成情報ファイル(c:¥hirdb¥pdload¥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)に格納

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 option allspace=zero                                         1
 source c:\hirdb\pdload\input_file error=c:\hirdb\pdload\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)へ表単位にデータロードします。

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source c:\hirdb\pdload\load_file1 error=c:\hirdb\pdload\err1
        errdata=c:\hirdb\pdload\err_data,1000                        1
 idxwork c:\hirdb\pdload\idx_file                                    2
 sort c:\hirdb\pdload\sortwork                                       3
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合のエラー情報とエラーとなった行データを出力するファイルの指定(ただし,入力データエラーの出力は1000件までとします)

    c:¥hirdb¥pdload¥load_file1:入力データファイルの名称

    c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称

    c:¥hirdb¥pdload¥err_data:エラーデータファイルの名称

  2. インデクス情報ファイルを作成するディレクトリの指定

    c:¥hirdb¥pdload¥idx_file:インデクス情報ファイルを作成するディレクトリの名称

  3. ソート用ワークディレクトリの指定

    c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称

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

例3
横分割表(TABLE1)に,RDエリア単位にデータロードします。PDBUSER01,及びPDBUSER02に対して,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)単位にデータロードします。

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source PDBUSER01 c:\hirdb\pdload\load_file1
        error=c:\hirdb\pdload\err1                         1
 idxwork c:\hirdb\pdload\idx_file                          2
 sort c:\hirdb\pdload\sortwork                             3
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定

    PDBUSER01:入力データを格納する表があるRDエリアの名称

    c:¥hirdb¥pdload¥load_file1:入力データファイルの名称

    c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称

  2. インデクス情報ファイルを作成するディレクトリの指定

    c:¥hirdb¥pdload¥idx_file:インデクス情報ファイルを作成するディレクトリの名称

  3. ソート用ワークディレクトリの指定

    c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称

(b) PDBUSER02へのデータロード

[実行するコマンドの説明]

横分割表(TABLE1)へRDエリア(PDBUSER02)単位にデータロードします。

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source PDBUSER02 c:\hirdb\pdload\load_file2
        error=c:\hirdb\pdload\err2                         1
 idxwork c:\hirdb\pdload\idx_file                          2
 sort c:\hirdb\pdload\sortwork                             3
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定

    PDBUSER02:入力データを格納する表があるRDエリアの名称

    c:¥hirdb¥pdload¥load_file2:入力データファイルの名称

    c:¥hirdb¥pdload¥err2:エラー情報ファイルの名称

  2. インデクス情報ファイルを作成するディレクトリの指定

    c:¥hirdb¥pdload¥idx_file:インデクス情報ファイルを作成するディレクトリの名称

  3. ソート用ワークディレクトリの指定

    c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称

(c) INDEX2の作成

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

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

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

例4
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)へ表単位にデータロードします。

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source c:\hirdb\pdload\load_file1 error=c:\hirdb\pdload\err1   1
 index INDEX2 c:\hirdb\pdload\index_inf1                        2
 sort c:\hirdb\pdload\sortwork                                  3
 lobdata c:\hirdb\pdload\lob                                    4
 lobmid c:\hirdb\pdload\lobmid_file1                            5
[説明]
  1. 入力データファイル,及び入力データにエラーがあった場合にエラーを出力するファイルの指定

    c:¥hirdb¥pdload¥load_file1:入力データファイルの名称

     入力データファイルの内容(DAT形式)

      1,lobfile1

      2,lobfile2

      3,lobfile3

    c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称

  2. インデクス情報を出力するインデクス情報ファイルの指定

    INDEX2:インデクス識別子

    c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称

  3. ソート用ワークディレクトリの指定

    c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称

  4. LOB入力ファイルのディレクトリの指定

    c:¥hirdb¥pdload¥lob:LOB入力ファイルのパス名

  5. LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力するファイルの指定(これをLOB列のデータロード時にそのまま使用します)

    c:¥hirdb¥pdload¥lobmid_file1:LOB中間ファイルの名称

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

例5
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)へ表単位にデータロードします。

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source c:\hirdb\pdload\load_file1 error=c:\hirdb\pdload\err1   1
 index INDEX2 c:\hirdb\pdload\index_inf1                        2
 sort c:\hirdb\pdload\sortwork                                  3
 lobmid c:\hirdb\pdload\lobmid_file1                            4
[説明]
  1. 入力データファイル,及び入力データにエラーがあった場合にエラーを出力するファイルの指定

    c:¥hirdb¥pdload¥load_file1:入力データファイルの名称

     入力データファイルの内容(DAT形式)

      1,lobfile1

      2,lobfile2

      3,lobfile3

    c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称

  2. インデクス情報を出力するインデクス情報ファイルの指定

    INDEX2:インデクス識別子

    c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称

  3. ソート用ワークディレクトリの指定

    c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称

  4. LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力するファイルの指定

    c:¥hirdb¥pdload¥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)へ表単位にデータロードします。

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 lobdata c:\hirdb\pdload\lob                                      1
 lobmid c:\hirdb\pdload\lobmid_file1 error=c:\hirdb\pdload\err1   2
[説明]
  1. LOB入力ファイルのディレクトリの指定

    c:¥hirdb¥pdload¥lob:LOB入力ファイルのパス名

    LOB列構成基表データロード時に次の入力データファイルを使用したものとします。

     入力データファイルの内容(DAT形式)

      1,lobfile1

      2,lobfile2

      3,lobfile3

  2. LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力したファイル,及びLOB入力エラーがあった場合にエラーを出力するファイルの指定

    c:¥hirdb¥pdload¥lobmid_file1:LOB中間ファイルの名称

    c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称

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

例7
監査証跡表(SQL_AUDIT_TRAIL)に対して,データロード待ちの監査証跡ファイルをデータロードします。なお,監査証跡表にはインデクスが定義されていないものとします。
[概要]

[図データ]

[入出力ファイルとRDエリアの関連図]

[図データ]

[実行するコマンドの説明]

監査証跡表(SQL_AUDIT_TRAIL)に対して,データロード待ちの監査証跡ファイル(c:\hirdb\audit\file)をデータロードします。

-b及び-W:監査証跡表へデータロードする場合に必ず指定するオプションです。

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source (uoc)                                       1
 srcuoc param='dir=c:\hirdb\audit\file,file=all'    2
[説明]
  1. 監査証跡データ登録UOCを使用する場合の指定

  2. 監査証跡データ登録UOCに渡すパラメタの指定

    dir=c:¥hirdb¥audit¥file:監査証跡ファイルのHiRDBファイル名

    file=all:データロード待ちのすべての監査証跡ファイルを対象とするため,allを指定

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

例8
表(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)へデータロードします。

c:¥hirdb¥pdload¥column_inf:列構成情報ファイルの名称

c:¥hirdb¥pdload¥control_file:制御情報ファイルの名称

[列構成情報ファイル(c:¥hirdb¥pdload¥column_inf)の内容]
 C1                               1
 C3                               1
 *adddata*                        2
 C2,sequence=(USER01.SEQ_A1)      3
[説明]
  1. 入力データをTABLE1の列(C1,C3)に格納

  2. これ以降の指定が入力データの追加であることを示す追加データ文

  3. 順序数生成子(USER01.SEQ_A1)が生成した順序番号を列C2に格納

[制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
 source c:\hirdb\pdload\load_file1     1
 option seq_range=1000                    2
[説明]
  1. 入力データファイルの指定

    c:¥hirdb¥pdload¥load_file1:入力データファイルの名称

  2. 順序番号の取得方式の指定(指定単位取得方式)

    seq_range=1000:データロード時に1000個ずつ順序番号を取得するための指定