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
- [説明]
-
-
入力データをTABLE1の列(C1,C2,C3)の順に格納
-
行の末尾のセパレータ文字を無視させるためのスキップデータ文
-
- [制御情報ファイル(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
- [説明]
-
-
入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
c:¥hirdb¥pdload¥load_file1:入力データファイルの名称
c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称
-
インデクス情報を出力するインデクス情報ファイルの指定
INDEX1:インデクス識別子
c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称
-
ソート用ワークディレクトリの指定
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
- [説明]
-
-
入力データの列のデータ型を記述
-
改行記号を格納しないようにするためのスキップデータ文
-
- [制御情報ファイル(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
- [説明]
-
-
入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
c:¥hirdb¥pdload¥load_file1:入力データファイルの名称
c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称
-
インデクス情報を出力するインデクス情報ファイルの指定
INDEX1:インデクス識別子
c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称
-
ソート用ワークディレクトリの指定
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
- [説明]
-
-
文字列形式の数値で記述した,小数点の無いデータの長さは7バイト,後方から2バイトは小数点以下の値としてDECIMAL(7,2)に格納
-
長さ10バイトのデータをCHAR(10)に格納
-
長さ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
- [説明]
-
-
DECIMAL列に格納する入力データが空白の場合,「0」を格納する指定
-
入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
-
(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
- [説明]
-
-
入力データファイル,及び入力データエラーがあった場合のエラー情報とエラーとなった行データを出力するファイルの指定(ただし,入力データエラーの出力は1000件までとします)
c:¥hirdb¥pdload¥load_file1:入力データファイルの名称
c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称
c:¥hirdb¥pdload¥err_data:エラーデータファイルの名称
-
インデクス情報ファイルを作成するディレクトリの指定
c:¥hirdb¥pdload¥idx_file:インデクス情報ファイルを作成するディレクトリの名称
-
ソート用ワークディレクトリの指定
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
- [説明]
-
-
入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
PDBUSER01:入力データを格納する表があるRDエリアの名称
c:¥hirdb¥pdload¥load_file1:入力データファイルの名称
c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称
-
インデクス情報ファイルを作成するディレクトリの指定
c:¥hirdb¥pdload¥idx_file:インデクス情報ファイルを作成するディレクトリの名称
-
ソート用ワークディレクトリの指定
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
- [説明]
-
-
入力データファイル,及び入力データエラーがあった場合にエラーを出力するファイルの指定
PDBUSER02:入力データを格納する表があるRDエリアの名称
c:¥hirdb¥pdload¥load_file2:入力データファイルの名称
c:¥hirdb¥pdload¥err2:エラー情報ファイルの名称
-
インデクス情報ファイルを作成するディレクトリの指定
c:¥hirdb¥pdload¥idx_file:インデクス情報ファイルを作成するディレクトリの名称
-
ソート用ワークディレクトリの指定
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
- [説明]
-
-
入力データファイル,及び入力データにエラーがあった場合にエラーを出力するファイルの指定
c:¥hirdb¥pdload¥load_file1:入力データファイルの名称
入力データファイルの内容(DAT形式)
1,lobfile1
2,lobfile2
3,lobfile3
c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称
-
インデクス情報を出力するインデクス情報ファイルの指定
INDEX2:インデクス識別子
c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称
-
ソート用ワークディレクトリの指定
c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称
-
LOB入力ファイルのディレクトリの指定
c:¥hirdb¥pdload¥lob:LOB入力ファイルのパス名
-
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
- [説明]
-
-
入力データファイル,及び入力データにエラーがあった場合にエラーを出力するファイルの指定
c:¥hirdb¥pdload¥load_file1:入力データファイルの名称
入力データファイルの内容(DAT形式)
1,lobfile1
2,lobfile2
3,lobfile3
c:¥hirdb¥pdload¥err1:エラー情報ファイルの名称
-
インデクス情報を出力するインデクス情報ファイルの指定
INDEX2:インデクス識別子
c:¥hirdb¥pdload¥index_inf1:インデクス情報ファイルの名称
-
ソート用ワークディレクトリの指定
c:¥hirdb¥pdload¥sortwork:ソート用ワークファイルを作成するディレクトリの名称
-
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
- [説明]
-
-
LOB入力ファイルのディレクトリの指定
c:¥hirdb¥pdload¥lob:LOB入力ファイルのパス名
LOB列構成基表データロード時に次の入力データファイルを使用したものとします。
入力データファイルの内容(DAT形式)
1,lobfile1
2,lobfile2
3,lobfile3
-
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
- [説明]
-
-
監査証跡データ登録UOCを使用する場合の指定
-
監査証跡データ登録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
- [説明]
-
-
入力データをTABLE1の列(C1,C3)に格納
-
これ以降の指定が入力データの追加であることを示す追加データ文
-
順序数生成子(USER01.SEQ_A1)が生成した順序番号を列C2に格納
-
- [制御情報ファイル(c:¥hirdb¥pdload¥control_file)の内容]
source c:\hirdb\pdload\load_file1 1 option seq_range=1000 2
- [説明]
-
-
入力データファイルの指定
c:¥hirdb¥pdload¥load_file1:入力データファイルの名称
-
順序番号の取得方式の指定(指定単位取得方式)
seq_range=1000:データロード時に1000個ずつ順序番号を取得するための指定
-