スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)

[目次][索引][前へ][次へ]

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

<この項の構成>
(1) 表へのデータロード
(2) 横分割表への表単位のデータロード
(3) 横分割表へのRDエリア単位のデータロード
(4) LOB列構成基表とLOB列のデータロード
(5) LOB列構成基表だけのデータロード
(6) LOB列だけのデータロード
(7) 監査証跡表へのデータロード
(8) 自動採番機能を使用したデータロード

(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,8192                             3
 
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    c:\hirdb\pdload\load_file1:入力データファイルの名称
    c:\hirdb\pdload\err1:エラー情報ファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX1:インデクス識別子
    c:\hirdb\pdload\index_inf1:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    c:\hirdb\pdload\sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(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,8192                             3
 
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    c:\hirdb\pdload\load_file1:入力データファイルの名称
    c:\hirdb\pdload\err1:エラー情報ファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX1:インデクス識別子
    c:\hirdb\pdload\index_inf1:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    c:\hirdb\pdload\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列に格納されます。
 
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,8192                                  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:ソート用ワークファイルを作成するディレクトリの名称
    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)単位にデータロードします。
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,8192                        3
 
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    PDBUSER01:入力データを格納する表があるRDエリアの名称
    c:\hirdb\pdload\load_file1:入力データファイルの名称
    c:\hirdb\pdload\err1:エラー情報ファイルの名称
  2. インデクス情報ファイルを作成するディレクトリの指定
    c:\hirdb\pdload\idx_file:インデクス情報ファイルを作成するディレクトリの名称
  3. ソート用ワークディレクトリの指定
    c:\hirdb\pdload\sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(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,8192                        3
 
[説明]
  1. 入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
    PDBUSER02:入力データを格納する表があるRDエリアの名称
    c:\hirdb\pdload\load_file2:入力データファイルの名称
    c:\hirdb\pdload\err2:エラー情報ファイルの名称
  2. インデクス情報ファイルを作成するディレクトリの指定
    c:\hirdb\pdload\idx_file:インデクス情報ファイルを作成するディレクトリの名称
  3. ソート用ワークディレクトリの指定
    c:\hirdb\pdload\sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(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,8192                             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:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
  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,8192                             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:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
  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個ずつ順序番号を取得するための指定