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

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

5.4.2 オプション

<この項の構成>
(1) -d
(2) {-a|-b〔-W 〔-w {all|data} 〔,rdaomit〕〔,csetnck〕〕〕|-U}
(3) -i インデクス作成方法
(4) -l ログ取得方式
(5) -k LOB作成種別
(6) -c 列構成情報ファイル名
(7) -v ナル値・関数情報ファイル名
(8) -n 〔一括出力用ローカルバッファ面数〕,〔div〕,〔ランダムアクセス用ローカルバッファ面数〕
(9) -u 認可識別子
(10) -x
(11) -f 入力デ−タファイル・LOB入力ファイルの種別
(12) -s セパレータ文字
(13) -e
(14) -r 入力開始行
(15) -z
(16) -y
(17) -o
(18) -m〔 経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル〕
(19) -X サーバ間通信の応答監視時間
(20) -q 世代番号
(21) -K{ i | f }
(22) -G{ xml | esisb }
(23) -F
(24) 〔認可識別子.〕表識別子
(25) 制御情報ファイル名

(1) -d

   〜《追加モード》

データベース作成ユティリティを作成モードで実行する場合に指定します。省略した場合は,追加モードが仮定されます。

作成モードとは,表の既存のデータをすべて削除してから,入力データを格納するモードのことをいいます。

追加モードとは,表の既存のデータを残して,入力データを追加するモードのことをいいます。

(a) 規則
  1. 追加モードでデータロードした場合,追加データは既存のデータの最終格納ページ以降のページに格納されます。このため,クラスタキーを定義した表に対して追加モードでデータロードすると,追加データはクラスタキー順に格納されません。
  2. 追加モードでデータロードをするときは,必ず未使用ページにデータを格納します。未使用ページを確保できなかった場合にはエラーとなります。既存のデータが格納されている使用中ページに空きがあっても利用しません。ただし,-yオプション指定時には,既存データが格納されている使用中ページを利用します。
  3. RDエリア単位のデータロードを作成モードで実行した場合,削除される既存の表データは,指定したRDエリア部分だけです。
  4. データ削除中は,option文にnowait=yesを指定していてもNOWAIT検索はできません。
  5. 同期点指定のデータロードで異常終了した後の再実行の場合,作成モードを指定しても無視されます。
  6. 更新凍結状態のRDエリアに格納されているLOB列,又はLOB属性の抽象データ型列がある表に対してデータロードする場合,作成モードを指定するとデータを削除できないためエラーとなります。なお,LOB列構成基表にだけデータロードする場合でも,作成モードを指定するとエラーになります。
  7. 改竄防止表の場合,作成モードのデータロードはできません。

(2) -a-b-W -w {all|data} 〔,rdaomit〕〔,csetnck〕〕〕|-U

   〜《DAT形式》

入力データファイルの形式を指定します。入力データファイルについては,「5.5 入力データファイル」を参照してください。

省略:DAT形式

-a:固定長データ形式

-b:バイナリ形式
監査証跡ファイルはバイナリ形式なので,監査証跡表にデータロードする場合は-bオプションを指定する必要があります。
-Wオプションと同時に指定することで,pdload用アンロードファイルとして扱います。

-W:pdload用アンロードファイル
このオプションを指定する場合は,同時に-bオプションも指定してください。アンロードした表とデータロードする表の間で,列データ型などの表定義が異なる場合はデータロードできません。ただし,非FIX表に限り,列構成情報ファイルを指定することで,列定義順序と列数を変更したデータロードができます。なお,UAPやUOCで入力データファイルの内容を変更する場合,行長,列データオフセット,及び行データの間は,間隔を空けないで詰めた形式で編集する必要があります。
監査証跡表にデータロードする場合はこのオプションを指定する必要があります。

-w:表移行用アンロードファイル
このオプションを指定する場合は,同時に-b -Wオプションも指定してください。
{all|data}
all:表,インデクス定義,及び表データを格納します。
data:表データだけを格納します。
rdaomit
このオプションは,移行元と移行先の格納RDエリア名が一致していない場合に指定します。ただし,次の条件を満たしている表に限ります。
  • インポートする表にBLOB列がない
  • 非分割表である
csetnck
表移行用アンロードファイル中の文字コードと,インポート先のHiRDBで使用する文字コードが同じかどうかのチェックを省略します。

-U:pdrorg用アンロードファイル
このオプションを指定してデータロードする場合,アンロードした表の列定義とデータロードする表の列定義を合わせる必要があります。SUPPRESS指定の列を持つ表をアンロードするときに-Sオプションを指定(空白データを圧縮)して作成したアンロードデータファイル,及びスキーマ単位のアンロードデータファイルは使用できません。また,使用できるアンロードデータファイルの媒体は通常ファイルだけです(テープやHiRDBファイルは不可)。アンロードしたデータが複数ファイルに出力された場合は,pdrorg実行時にデータ出力があったアンロードデータファイル名だけを,unload文に指定した順にpdloadのsource文に記述してください。指定順を誤ると,正しくデータロードできないことがあります。
なお,データロード対象表が次のどれかの条件に該当する場合にこのオプションを指定すると,制御文エラーになります。
  • 抽象データ型の列を持つ表
  • BINARY型の列を持つ表
  • 繰返し列を持つ表
  • FIX表
これらの表にデータロードするときは,pdload用アンロードファイルを使用してください。

(3) -i インデクス作成方法

   〜《c》

インデクスの作成方法を指定します。インデクスの作成方法には次の四つがあります。

c
インデクス一括作成モードを示します。このモードを指定した場合,表の作成処理に引き続き,インデクスを一括作成します。
行データの格納中はインデクスを作成しないで,インデクス作成情報をインデクス情報ファイルに出力します。行データの格納処理が完了した後,引き続きインデクスを作成します。
<適用基準>
大量のデータロードをする場合に,高速にインデクスが作成できます。
<注意事項>
  1. 追加モードのデータロードする場合,インデクス情報ファイルには,既存データと追加データを合わせたすべてのインデクス情報が出力されるため,全件再作成となります。なお,プラグインインデクスの追加データロードの場合は,追加データのインデクス情報だけが出力されます。そのため,プラグインインデクスは,追加した件数だけ作成します。
  2. インデクス一括作成モードで同期点指定のデータロードをすると,次の理由によって処理性能が悪くなります。
    ・B-treeインデクスの場合,すべてのデータを格納した後,再度データページを検索してインデクス情報ファイルの作成をしてしまう。
    ・プラグインインデクスの場合,トランザクションが決着するごとにインデクス作成処理を開始するため,データロード処理とインデクス作成処理を交互に実行することになる。

n
インデクス情報出力モードを示します。このモードを指定した場合,インデクス情報だけをインデクス情報ファイルに出力します。
行データの格納中はインデクスを作成しないで,インデクス作成情報をインデクス情報ファイルに出力します。
<適用基準>
出力されたインデクス情報ファイルを使用して,データベース再編成ユティリティでインデクスの一括作成を複数同時に実行することで,高速にインデクスを作成できます。特に,HiRDB/パラレルサーバで複数のサーバに分割格納されている表の場合に効果があります。
<注意事項>
  1. RDエリア単位のデータロードで,サーバ内で複数のRDエリアに対して表を分割格納している場合に,分割表の一部を作成したとき,サーバ内横分割をしていない非分割キーインデクスはインデクス情報出力モードとして処理されます。
  2. プラグインインデクスが定義されている表の場合,インデクス情報出力モードは指定できません。
  3. インデクス情報出力モードを指定した場合,データロード完了後にデータベース再編成ユティリティでインデクスの一括作成をする必要があります。

s
インデクス更新モードを示します。このモードを指定した場合,行を格納するたびにインデクスを更新します。
<適用基準>
既存データが大量にある表に対して,少量の追加モードのデータロードをする場合や,ユニークキーインデクス又は主キーインデクスが定義されていて,かつ格納するデータのキー値が重複している可能性がある場合に指定してください。

x
インデクス情報出力抑止モードを示します。このモードを指定した場合,インデクスは更新しません。また,インデクス情報をインデクス情報ファイルに出力しません。
<適用基準>
データロードを数回に分けて実行する場合に指定します。
例えば,MTがn巻あるため,n回データロードを実行する場合にこのモードを指定します。
<注意事項>
  1. -i xでデータロードする場合は,最後の実行で-i c(インデクス一括作成モード)を指定するか,又は-i n(インデクス情報出力モード)を指定してください。-i nを指定した場合は,後でデータベース再編成ユティリティでインデクスの一括作成(-k ixmk)をする必要があります。
    また,すべて-i xでデータロードした場合は,後でデータベース再編成ユティリティでインデクスの再作成(-k ixrc)をする必要があります。
  2. プラグインインデクスが定義されている表の場合,インデクス情報出力抑止モードは指定できません。
  3. -i xでデータロードするとインデクスを更新しないため,インデクスは未作成状態となります。
(a) インデクス作成上の注意事項
  1. インデクス更新モード(-i s)以外でpdloadを実行すると,行データをすべて表へ格納した後に一括してインデクスを作成することになります。このとき,インデクス作成時にキー重複エラーやキー重複の上限数を超えるエラーが発生すると,表とインデクスが不整合な状態となります。このため,次に示す場合は,ログ取得モードに関係なく,ユティリティ実行前にバックアップを取得してください。
    • ユニークキーインデクス又は主キーインデクスを定義している表の場合
    • 繰返し列にインデクスを定義している表の場合
  2. 横分割インデクスと非横分割インデクスでのインデクス作成方法を次の図に示します。
    1サーバ内の複数RDエリアに表を分割格納している場合,表格納用RDエリアと同じ数のインデクス格納用RDエリアに格納する横分割インデクスと,表格納用RDエリアの数とは関係なく一つのインデクス格納用RDエリアに格納する非横分割インデクスがあります。
    横分割インデクスは,サーバ内で分割されている表に対して,同じように分割格納します(図中のRDエリアINDEX1_1,INDEX1_2)。
    非横分割インデクスは,表格納用RDエリアの数に関係なく,サーバ内の1RDエリアに格納します(図中のRDエリアINDEX1_3,INDEX2_1,INDEX2_2)。

    図5-11 分割キーインデクスと非分割キーインデクスでのインデクス作成方法

    [図データ]

    [説明]
    データロード完了後は,-iオプションの指定によってインデクスが作成されます。
    例えば,RDエリア単位にTABLE1_1にデータロードをした場合,横分割インデクスINDEX1_1が作成されます(INDEX1_2は影響を受けません)。しかし,非横分割インデクスINDEX2_1は,TABLE1_1及びTABLE1_2の両方の情報がないと作成できないため,インデクスは作成されません(TABLE1_1のインデクス情報ファイルだけ作成されます)。
    非横分割インデクスを作成するためには,TABLE1_2に対してもデータロードをして,TABLE1_2のインデクス情報ファイルを作成します。そして,作成済みのTABLE1_1のインデクス情報ファイルとTABLE1_2のインデクス情報ファイルを使用して,pdrorgのインデクスの一括作成をします。
  3. 表データの格納が終了してから,インデクスの一括作成が終了するまでの間は,該当するインデクスは未完状態となり,使用できません。
  4. -i c又は-i nを指定して,入力データファイルにデータがなかった場合,インデクス情報ファイルには既存データのインデクス情報だけ出力されます。これをpdrorgの入力とすることで,インデクスの再作成ができます。この場合,pdloadは必ず追加モード(-dオプション省略)で実行してください。作成モード(-dオプション指定)で実行した場合,pdloadは先に表データを削除してしまうので,インデクス情報もなくなってしまいます。
  5. -i nでデータロードをした後に,pdrorgのインデクスの一括作成(-k ixmk)を実行していない状態で,ALTER TABLEでRDエリアを追加すると,-i nで出力されたインデクス情報ファイルは使用できなくなります。ALTER TABLEでRDエリアを追加する場合は,先にpdrorgのインデクスの一括作成を終了させてください。なお,先にALTER TABLEでRDエリアを追加してしまった場合は,pdrorgのインデクスの再作成(-k ixrc)をする必要があります。
  6. -i c,又は-i nを指定すると,「インデクス数×表格納用RDエリア数」のインデクス情報ファイルを作成します。このファイルは,データロード時に同時にオープンするため,ファイル数が多いと1プロセスで使用できるファイル数の上限を超えることがあります。ファイル数の上限を超える場合,システム定義のpd_max_open_fdsオペランドの指定値を大きくしてください。ただし,pd_max_open_fdsオペランドの上限値を超える場合は,1サーバ内の表の分割数,定義しているインデクス数を見直すか,又は-i sを指定するかで対処してください。
  7. インデクス情報出力モード(-i n)を指定した場合,インデクスの一括作成(-k ixmk)が完了するまではALTER INDEXでインデクスの名称を変更しないでください。インデクスの名称を変更すると,インデクスの一括作成ができなくなります。なお,インデクスの一括作成が完了する前にインデクスの名称を変更してしまった場合は,ALTER INDEXで元のインデクス名称に戻してからインデクスの一括作成をし,その後でインデクスの名称を変更してください。
  8. インデクス情報出力モード(-i n)を指定した場合,インデクスの一括作成(-k ixmk)が完了するまでは,インデクスを格納したRDエリアの名称を変更しないでください。インデクスを格納したRDエリアの名称を変更すると,インデクスの一括作成ができなくなります。なお,インデクスの一括作成が完了する前にインデクスを格納したRDエリアの名称を変更してしまった場合は,pdmodで元のRDエリア名称に戻してからインデクスの一括作成をし,その後でRDエリアの名称を変更してください。
(b) プラグインインデクス作成上の注意事項
  1. プラグインインデクスが定義されている場合は,インデクス情報出力モード,及びインデクス情報出力抑止モードは指定できません。したがって,インデクス一括作成モード,又はインデクス更新モードを指定してください。
  2. B-tree構造のインデクスの場合はインデクス一括作成モードでデータロードを実行するとすべてのインデクスを作成しますが,プラグインインデクスの場合は追加分のデータしかインデクスを作成しません。このため,0件のデータロードを実行した場合,B-tree構造のインデクスはインデクスを再作成しますが,プラグインインデクスは再作成しません。しかし,プラグインインデクスの場合も,インデクス格納RDエリアの再初期化後に0件のデータロードを実行すると,インデクスを再作成します。これは,インデクス作成時の異常終了やディスク障害などでインデクスが破壊された状態になった場合に,インデクスを復旧するために利用します。
(c) -i c又は-i n指定時の注意事項

-i c又は-i n指定時に,index文,及びidxwork文を省略すると,/tmpディレクトリに次の名称規則でインデクス情報ファイルを出力します。

 
/tmp/INDEX-インデクス名-インデクス格納用RDエリア名-一意となる文字列
 

pdloadが異常終了した場合,このファイルは削除されません。そのままpdloadを再実行すると,更に別の名前でファイルが作成され,/tmpディレクトリの容量不足になることがあります。また,idxwork文を指定した場合も,同様の名称規則で,idxwork文に指定したディレクトリ下にインデクス情報ファイルを出力しますが,pdloadが異常終了するとファイルは削除されません。そのため,不要となったインデクス情報ファイルは,OSのrmコマンドで削除するようにしてください。

(4) -l ログ取得方式

   〜《p》

pdload実行時のデータベースの更新ログの取得方法を指定します。

なお,pdload実行中に異常終了した場合,更新ログを取得していても,データベースはpdload実行前の状態には戻りません。pdloadが異常終了した場合の対処方法については,「5.12 エラー時のデータベースの状態とその回復方法」を参照してください。

a
ログ取得モードを示します。ロールバック及びロールフォワードに必要なデータベースの更新ログを取得します。
<適用基準>
このモードは,少量のデータをデータロードする場合に適しています。
ログ取得モードで実行した場合,pdloadの実行前及び実行後にバックアップを取得する必要はありませんが,処理性能はほかのモードに比べて劣ります。

p
更新前ログ取得モードを示します。ロールバックに必要なデータベースの更新ログは取得しますが,ロールフォワードに必要なデータベースの更新ログは取得しません。
<適用基準>
このモードは,大量のデータをデータロードする場合に適しています。
更新前ログ取得モードで実行した場合,ログ取得モードに比べると実行時間は短縮できます。ただし,以後の媒体障害などに備えて,pdloadの実行後に,表及びインデクスを格納したRDエリアのバックアップを取得する必要があります。
pdload実行中に障害が発生した場合,pdloadが障害発生直前に同期を取った時点まで回復します。そのため,RDエリアがログレス閉塞になることは防げますが,処理対象表はpdload実行前の状態には回復されません。
<注意事項>
プラグインが出力するログについて,プラグインが提供する抽象データ型を定義した表にデータロードをする場合,p(更新前ログ取得モード)の指定が有効かどうかは,各種プラグインの実装によって決まります。pの指定が有効にならないプラグインの場合は,a(ログ取得モード)が仮定されます。

n
ログレスモードを示します。データベースの更新ログを取得しません。
<適用基準>
このモードは,処理対象となるRDエリアにデータロード対象表とその表のインデクスだけ定義している場合に,大量のデータをデータロードするときに適しています。
ログレスモードで実行した場合,ほかのモードに比べると実行時間は短縮できます。ただし,ユティリティ実行中の障害でバックアップから回復する場合や,以後の媒体障害などの発生によって,データベースのバックアップ及びログから回復する場合に備えて,ユティリティの実行前及び実行後に,表及びインデクスを格納したRDエリアのバックアップを取得する必要があります。
障害発生時には,バックアップ取得時点までしか回復できません。
<注意事項>
  1. pdloadをログレスモードで実行していた場合にエラーが発生したときは,エラーによって閉塞したRDエリアはバックアップから回復するか,又は再初期化をする必要があります。
(a) 注意事項
  1. nの場合,障害発生時に以前取得したバックアップとログ,又は入力データ(データロードする表にデータが格納されていない場合で,かつ該当するRDエリアにその表だけ格納する場合)から回復できるときは,pdload実行前のバックアップ取得は不要です。
  2. p,及びnの場合の運用方法(データベースの更新ログを取得しないときの運用)については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
  3. -lオプションの指定に関係なく,pdloadが生成するトランザクション(T)によってトランザクションログは必ず取得されます。1サーバ当たり,次のトランザクションログを生成するため,pdload実行時のログ量の計算式は次のようになります。
     
    ログ量=(1328+176×3)×T+A (単位:バイト)
     
    T=(x×2)+(y×2)+(z×2)
     x:表の数
     y:LOB列(LOB属性)格納用RDエリアの数
     z:インデクス数×インデクス格納用RDエリアの数(-i sの場合は不要)
    注※
    同期点指定のデータロードの場合は同期点の数,それ以外の場合は1となります。
     
    A=データベース操作に応じて出力されるシステムログ量(データベースの更新ログ量)。この値は-lオプションの指定値で変わります。システムログ量の求め方については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
    また,p又はnを指定した場合,排他制御によってENQログを取得します。1サーバ当たり次のENQログを取得します。
     
    ENQログ=(p+q+r)×T
     
     p:表格納用RDエリアの数
     q:LOB列(LOB属性)格納用RDエリアの数
     r:インデクス格納用RDエリアの数
     
    したがって,「システムログファイルのレコード長×ENQログ」の分だけシステムログが出力されます。
  4. ログ同期方式のリアルタイムSANレプリケーションを適用している場合,業務サイトで-l p又は-l n指定のpdloadを実行したときは,システムログ適用化を実施してください。

(5) -k LOB作成種別

   〜《f又はd》

LOBデータをLOB列に格納する場合,及び抽象データ型列に格納する値を生成するコンストラクタ関数の引数がLOBパラメタの場合に,そのデータの入力方法を指定します。このオプションを省略した場合はfが仮定されますが,option制御文にjobオペランドの指定がなく,-Wオプションを指定している場合はdが省略時仮定値となります。

f
LOBデータごとにファイルを用意する場合に指定します。これらのファイルをLOB入力ファイルと呼びます。

c
一つのLOB列にある複数のLOBデータを,一つのファイルに用意する場合に指定します。このファイルを列単位LOB入力ファイルと呼びます。
列単位LOB入力ファイルは,何らかのプログラムを使用して他データベースからデータを移行するときなどに作成したりします。
抽象データ型の列に格納するデータを生成する関数の入力パラメタとして指定するLOBデータの場合は,このオプションは指定できません。したがって,LOBを入力パラメタとする抽象データ型の列がある表の場合は,抽象データ型の列でないLOB列があるときに,その列に対しても列単位LOBファイルは使用できません。

v
LOB列への格納データは格納するLOBデータごとにLOB入力ファイルを用意し,抽象データ型列に格納する値を生成するコンストラクタ関数の入力パラメタとなるデータ(LOBパラメタ)は入力データファイルに格納する場合に指定します。
この指定は,入力データファイルがバイナリ形式の場合だけできます。

d
LOBデータ,及び抽象データ型列のLOBパラメタデータを,入力データファイルに直接記述する場合に指定します。
この指定は,入力データファイルがバイナリ形式の場合だけ指定できます。
-k dを指定した場合,UOCを利用したデータロードはできません。
(a) 適用基準

-kオプションは,次に示すLOB列,抽象データ型列のLOBパラメタの有無,及び入力データファイルの形式によって指定値を決めてください。

LOB列 入力データファイルの形式 抽象データ型列
なし あり
LOBパラメタなし LOBパラメタあり
なし DAT形式 -k f
バイナリ形式 -k v又は-k d
固定長データ形式 -k f
pdrorg出力バイナリ形式 -k d
あり DAT形式 -k f又は-k c -k f又は-k c -k f
バイナリ形式 -k f,-k c,又は-k d -k f,-k c,又は-k d -k v又は-k d
固定長データ形式 -k f又は-k c -k f又は-k c -k f
pdrorg出力バイナリ形式 -k d -k d -k d

(凡例)
−:-kオプションは指定する必要がありません。
(b) 規則
  1. LOB列構成基表とLOB列を別々に作成する場合,LOB列作成時はLOB列構成基表作成時と同じオプションを指定してください。
  2. -kオプションの指定値によって,入力データファイル,及びLOB入力ファイルの内容は次のようになります。
    -kオプション 入力データファイル LOB入力ファイル
    LOB列格納データ 抽象データ型LOBパラメタ LOB列格納データ 抽象データ型LOBパラメタ
    f LOB入力ファイルのファイル名を記述 LOB入力ファイルのファイル名を記述 格納データ数分のファイルを用意 格納データ数分のファイルを用意
    c ダミーデータを記述 列数分のファイルを用意
    v LOB入力ファイルのファイル名を記述 LOBパラメタの内容を記述 格納データ数分のファイルを用意 不要
    d LOBデータの内容を記述 LOBパラメタの内容を記述 不要 不要

    (凡例)−:該当しません。


  3. 同期点指定のデータロードの場合,-kオプションにはdを指定してください。f,c,及びvは指定できません。

(6) -c 列構成情報ファイル名

列構成情報ファイルの名称を指定します。

列構成情報ファイルについては,「5.7 列構成情報ファイル」を参照してください。

列構成情報ファイルは,次のような場合に指定します。

(a) 規則
  1. 列構成情報ファイルは,入力データファイルが固定長データ形式の場合は必ず指定してください。
    DAT形式,又はpdrorg出力バイナリ形式の場合は任意に指定できます。ただし,pdrorg出力バイナリ形式の場合は,非FIX表に対してデータロードするときに指定できます。FIX表に対してデータロードした場合にはエラーとなります。FIX表の場合に列構成情報ファイルを指定して列構成を変更したいときは,該当するファイルを固定長データ形式の入力データファイルとして扱うと,同様の処理ができます。
  2. DAT形式の入力データファイルの場合,次の条件をすべて満たすときは,列構成情報ファイルの指定は不要です。
    • 入力データの列の並び順と表の列定義の順序が同じとき
    • 入力データの列数と表の列数が同じとき
    • 抽象データ型に格納するデータを生成するコンストラクタ関数の名称が,列データ型の名称と同じで,かつ該当する関数が一つだけのとき
    • 繰返し列に格納する入力データの要素数が,表定義時に指定した最大要素数と同じとき
  3. 列構成情報ファイルは,データベース作成ユティリティを実行する(pdloadコマンドを入力する)ホストに用意してください。
  4. 列構成情報ファイルは,ナル値・関数情報ファイルと同時に指定できません。

(7) -v ナル値・関数情報ファイル名

ナル値・関数情報ファイルの名称を指定します。

ナル値・関数情報ファイルは,入力データをナル値とみなす値に変更するとき,又は抽象データ型列に格納する値を生成するコンストラクタ関数の情報を記述するときに使用します。

ナル値・関数情報ファイルについては,「5.8 ナル値・関数情報ファイル」を参照してください。

(a) 規則
  1. ナル値・関数情報ファイルは,入力データファイルがバイナリ形式の場合に指定できます。DAT形式,及び固定長データ形式の場合には指定できません。
  2. ナル値・関数情報ファイルは,列構成情報ファイルと同時に指定できません。

(8) -n 〔一括出力用ローカルバッファ面数〕,〔div〕,〔ランダムアクセス用ローカルバッファ面数

表へデータロードする場合に,ローカルバッファを使用するときに指定します。このオプションを指定すると,ローカルバッファを使用してDBアクセスができるようになり,一括出力によって入出力回数が削減できます。

このオプションを省略した場合は,グローバルバッファを使用して1ページ単位に出力をします。

一括出力用ローカルバッファ面数 〜<符号なし整数>((2〜4096))
一括出力用ローカルバッファの面数を指定します。一括出力用ローカルバッファは,データページに対して使用します。
一括出力用ローカルバッファ面数には,16〜32面を指定することをお勧めします。64キロバイト÷ページ長が目安です。

div
次の条件をすべて満たす場合にdivを指定してください。次の条件をすべて満たす場合にdivを指定しないと,入出力回数が増加し,性能が劣化することがあります。
  • 横分割表に対して,表単位にデータロードをする
  • ハッシュ関数(HASH0〜HASH6)を使用した横分割表に対してデータロードをする,又はキーレンジ分割の表に格納する入力データのキー値の順序がランダムになっている
  • 表を格納するRDエリアが1サーバ内に複数ある
なお,divを指定すると,サーバ内表分割数分のバッファを確保するため,メモリ消費量が増えます。

ランダムアクセス用ローカルバッファ面数 〜<符号なし整数>((4〜125000))
ランダムアクセス用ローカルバッファの面数を指定します。ランダムアクセス用ローカルバッファは,インデクスページに対して使用します。

一括入出力用ローカルバッファ面数,div,及びランダムアクセス用ローカルバッファ面数は,表定義によって指定の組み合わせを変更することをお勧めします。推奨する-nオプションの指定を次の表に示します。

表5-5 推奨する-nオプションの指定(pdload)

表種別 列定義 サーバ内での表の分割
あり なし
FIX表 -n x,div -n x
非FIX表 列長が256バイトを超える可変長文字列,又はBINARY列を定義している場合 -n,,y
抽象データ型列を定義している場合 -n x,div,y -n x,,y
繰返し列を定義している場合
上記以外 -n x,div -n x

(凡例)
x:一括出力用ローカルバッファ面数
y:ランダムアクセス用ローカルバッファ面数
−:該当なし
(a) pdloadが使用するバッファについて
  1. -nオプションを省略した場合,グローバルバッファを使用します。この場合,データロード時に大量のグローバルバッファを使用するため,そのグローバルバッファを使用するUAPのトランザクション性能が劣化します。-nオプションを指定すると,このようなバッファ競合はなくなります。pdloadとバッファの関係を次の図に示します。

    図5-12 pdloadとバッファの関係

    [図データ]

    〔説明〕
    グローバルバッファだけを使用する場合(-nオプションを省略した場合),pdloadとUAPとでバッファの競合が発生します。
    ローカルバッファとグローバルバッファを使用する場合(-nオプションを指定した場合),pdloadとUAPとのバッファの競合は発生しません。ただし,LOB列のデータロードの場合は,-nオプションを指定してもグローバルバッファを使用します。
  2. -nオプションに一括出力用ローカルバッファ面数だけを指定した場合,一つのRDエリアに対して一つの一括出力用ローカルバッファを使用します。RDエリアがn個ある場合でも,一つの一括出力用ローカルバッファを使用するため,バッファ競合が発生します。バッファ競合が発生すると,逆に入出力回数が増加して性能劣化を引き起こします。このような場合にはdivを指定してください。divを指定すると,RDエリア数分の一括出力用ローカルバッファを確保するため(一つのRDエリアに対して一つの一括出力用ローカルバッファを確保する),バッファの競合はなくなります。
  3. 一括出力用ローカルバッファを指定しても,条件によってはグローバルバッファを使用することがあります。各条件と使用されるバッファとの関係を次の表に示します。

    表5-6 各条件と使用されるバッファとの関係(pdload)

    条件 ランダムアクセス用ローカルバッファの指定
    なし あり
    グローバルバッファ 一括出力用ローカルバッファ グローバルバッファ 一括出力用ローカルバッファ ランダムアクセス用ローカルバッファ
    データページ LOB列構成基表を格納するRDエリア FIX表
    非FIX表 列長が256バイトを超える可変長文字列,又はBINARY列を定義している場合
    抽象データ型列又は繰返し列を定義していて,かつ1行のデータが1ページに入らない場合
    上記以外
    LOB列格納用RDエリア
    LOB属性格納用RDエリア
    インデクスページ 表からキー値検索する場合(-i c又はn指定時)
    インデクスの同時作成をする場合(-i s指定時)
    インデクスの一括作成をする場合(-i c指定時)
    ディレクトリページ
    (凡例)
    ○:使用します。
    −:使用しません。
(b) 規則
  1. リバランス表の場合,グローバルバッファが十分に割り当てられていないと,極端に性能が劣化することがあります。したがって,定義長が256バイトを超える列がないときは一括出力ページ数を指定するようにしてください。
    定義長が256バイト以上の列があるなどの理由で,ローカルバッファ指定が有効にならない場合は,次の面数以上のグローバルバッファを割り当ててください。
    1RDエリアに必要なバッファ面数
    =1024÷(表格納用RDエリア数)×2+3
  2. FIXハッシュ分割のリバランス表の場合,ハッシュグループごとに指定したページ数のバッファを確保するため,横分割していない表やほかの条件で分割している表よりも,メモリを多量に消費します。

(9) -u 認可識別子

データベース作成ユティリティを実行するユーザの認可識別子を指定します。

省略時仮定値については,「(b) 省略時仮定値」を参照してください。

このオプションを指定した場合,パスワード入力要求の応答付きメッセージが表示されます。パスワードが不要な場合は,応答付きメッセージに対して空送信してください。そこで応答した認可識別子/パスワードでHiRDBシステムに接続し,その認可識別子について表へのアクセス権限があるかどうかがチェックされます。

(a) 適用基準

環境変数PDUSERに設定されている認可識別子ではない,別の認可識別子で実行したい場合に指定します。

(b) 省略時仮定値

省略した場合,次のように認可識別子/パスワードが仮定されます。

  1. データベース作成ユティリティ実行時の環境変数PDUSERの設定値が仮定されます。シェルで&を付けてバックグラウンドで実行する場合や,リモートシェル環境で実行する場合など,パスワードの応答ができない環境で実行するときは,PDUSERを必ず設定してください。環境変数PDUSERの指定例を次に示します。
    (例)Cシェルの場合
    パスワードありの場合 setenv PDUSER '"認可識別子"/"パスワード"'
    パスワードなしの場合 setenv PDUSER '"認可識別子"'
  2. 環境変数PDUSERが設定されていない場合,ログインウィンドウのユーザ名が仮定されます。パスワードについては,入力要求の応答付きメッセージが表示されるので,そこで応答してください。パスワードが不要な場合は,応答付きメッセージに対して空送信してください。
(c) 規則
  1. このオプションは,シェルで&を付けてバックグラウンドで実行する場合や,リモートシェルなど,パスワードが応答できない環境では指定しないでください。
  2. 認可識別子を引用符('')で囲んだ場合は,英大文字と英小文字が区別されます。引用符('')で囲まない場合は,すべて英大文字として扱われます。なお,sh(Bourneシェル),csh(Cシェル),及びksh(Kシェル)の場合は,更にアポストロフィ(’)で囲む必要があります。

(10) -x

表にクラスタキーが定義してある場合,入力データがクラスタキーの昇順又は降順になっているかどうかをチェックしないで,入力順にデータロードする場合に指定します。

このオプションを省略した場合は,クラスタキー順のチェックをして,クラスタキー順でない入力データはエラーとなります。

(a) 適用基準

入力データの順序がクラスタキー順であることが分かっている場合,このオプションを指定することでクラスタキーチェックのためのオーバヘッドを削減できます。

(b) 注意事項
  1. UNIQUE指定のクラスタキーが定義されている表の場合,重複キーのチェックができなくなるため,重複キーのデータを格納しようとするとエラー(ロールバック)となります。
  2. クラスタキーが定義されている表に対して,クラスタキー順でない入力データを格納できますが,クラスタリングの効果はなくなります。

(11) -f 入力デ−タファイルLOB入力ファイルの種別

入力デ−タファイル,又はLOB入力ファイルがEasyMTの場合に,easymtと指定します。

(a) 規則
  1. LOB列構成基表とLOB列を同時に作成する場合は,EasyMTを使用するためマウント操作用にMtguideが必要です。
  2. 入力デ−タファイルがEasyMTでLOB入力ファイルが通常ファイルの場合(また,その逆の場合も),LOB列構成基表とLOB列は別々にデータロードする必要があります。
  3. 抽象データ型の列を持つ表に対してデータロードをする場合,抽象データ型の列へ格納するデータを生成するコンストラクタ関数のパラメタとしてLOBデータがあるときは,LOB入力ファイルをEasyMTに割り当てることはできないため,このオプションは指定できません。

(12) -s セパレータ文字

   〜<文字列>

入力データファイルがDAT形式の場合,各データ間のセパレータ文字を変更する場合に指定します。省略した場合,コンマ(,)が仮定されます。

バイナリ形式,及び固定長データ形式の場合は,指定しても無視されます。

(a) 適用基準

入力データ中の各データ間のセパレータ文字が,コンマ以外の場合に指定します。

(b) 規則
  1. 入力データ中にない文字コードであれば,セパレータ文字としてタブやパイプ記号(|)を指定できます。ただし,これらの特殊な文字はコマンドラインの入力を受け付けるシェルが認識できるように,セパレータ文字を引用符(")で囲むなどして指定する必要があります。
  2. 次に示す文字は,セパレータ文字として指定できません。
    • 英大文字(A〜Z),英小文字(a〜z)
    • 数字(0〜9)
    さらに,次に示す文字もユティリティが特別な意味で使用する予約文字なので,セパレータ文字として指定できません。
    • アスタリスク(*),引用符("),下線(_)
  3. 次に示す文字は,入力データのコードと重なる可能性があるのでセパレータ文字に適していません。なお,セパレータ文字は1バイトのため,2バイトコードは指定できません。
    • 数値データ入力時の符号(+,−)
    • 日本語入力時に文字コードが重なる文字(|,¥,[,],(,),{,}, ̄)
    • 日付データ入力時のハイフン(−)
    • 時刻データ入力時のコロン(:)
    • 日間隔,時間隔データ入力時のピリオド(.)

(13) -e

入力データの不正を検出した場合に,処理を中断するときに指定します。

処理を中断した後,それまでの格納処理を無効にしたい(ロールバックしたい)場合は,option文のdataerrオペランドを指定します。

-eオプション,及びoption文のdataerrオペランドの両方を省略した場合,入力データの不正を検出しても処理を続行して,正常なデータだけをDBに格納します。

-eオプションを指定した場合,最初にエラーとなったデータの要因だけをエラー情報ファイルに出力します。-eオプションを指定しなかった場合,エラーとなったすべてのデータの要因をエラー情報ファイルに出力します。

(a) 適用基準

入力データに不正があった場合に,最初のエラーの時点で処理を中断させることができます。

例えば,DAT形式の入力データファイルで繰返し列に対してデータロードする場合,入力データはVV形式で作成しているのにarray文のelmtypeオペランドを省略するとFF形式と扱われるために,すべての入力データがエラーとなります。そして,無駄なエラー情報ファイル,及びエラーデータファイルが作成されてしまいます。このような場合に,-eオプションを指定しておくと,最初にエラーを検知した時点で処理を中断するので,無駄にファイルを作成したりすることはなくなります。

(b) 規則
  1. 次の条件の場合は,このオプションの指定に関係なく,処理を中断してロールバックします。
    条件 理由
    バイナリ形式の入力データファイルで,可変長データの長さ部の領域が負の値の場合 行の区切りがないバイナリ形式では,列長でデータの切り出しをするため,行データを認識する必要があります。しかし,負の値では,データの切り出しができないため,処理を続行できません。
    option文にdataerrオペランドを指定した場合 dataerrオペランドを指定した場合,処理をロールバックするため,処理を継続しても意味がありません。
  2. エラー情報ファイルの名称は,制御情報ファイル中で指定しますが,指定がなければデータベース作成ユティリティが入力データファイルと同じホストのディレクトリ下にファイルを作成します。ファイルの名称はデータベース作成ユティリティが決定し,そのファイル名称はメッセージに出力されます。エラー情報ファイル名については,「5.4.4(2)(e)error=エラー情報ファイル名」を参照してください。
  3. HiRDB/パラレルサーバで,入力データファイルを用意したサーバ(source文に指定したサーバ)とデータロード対象表があるサーバが異なる場合,又はHiRDB/シングルサーバでユティリティ専用ユニットに入力データファイルを用意する場合は,次のエラーデータを検出した時点で処理は中断できません。
    • ユニークキーインデクス,又は主キーインデクスのキー重複エラー
    • 抽象データ型列に格納する値の不正
    特に,HiRDB/パラレルサーバでは,複数サーバに分割された表に対して表単位のデータロードをする場合,-eオプションを指定すると処理中に上記のエラーが発生しても入力した行データがどこまで表に格納されたか保証できません。そのため,次の条件をすべて満たす場合は,-eオプションは指定しないでください。
    • HiRDB/パラレルサーバ
    • 複数サーバに分割された表への表単位のデータロード
    • ユニークキーインデクス,又は主キーインデクスを定義した表,又は抽象データ型列を持つ表
  4. option文のdataerrオペランドを指定した場合にエラーデータを検知したときは,-eオプションを省略していても処理を中断します。

(14) -r 入力開始行

   〜<符号なし整数>((2〜4294967295))《1》

入力データファイルの1行目からデータを入力しないで,指定した行からデータを入力する場合に指定します。

(a) 適用基準

-eオプションを指定したデータロードが中断した場合に,再度データロードをするときに指定します。

(b) 注意事項
  1. UOC(UOCが入力データファイルを入力する方法)を利用してデータロードする場合,-rオプションを指定しても無視されます。
  2. 同期点指定のデータロードが異常終了しロールバックした後に,-rオプションを指定して同期点指定のデータロードを再実行すると,再実行時の入力開始行は次のようになります。
    状態 再実行時の入力開始行
    -r 入力開始行
    >同期点指定のデータロードで保存された行
    -r 入力開始行
    -r 入力開始行
    =同期点指定のデータロードで保存された行
    同期点指定のデータロードで保存された行
    -r 入力開始行
    <同期点指定のデータロードで保存された行
    同期点指定のデータロードで保存された行

注※
pdloadの再実行を示すKFPL00810-Iメッセージが出力されます。

(15) -z

可変長文字列,可変長各国文字列,及び可変長混在文字列に対して,長さ0のデータを格納する場合に指定します。

(a) 適用基準

可変長文字列,可変長各国文字列,及び可変長混在文字列に対して,ナル値,又は1バイトの空白(1文字の空白)を格納したくない場合に指定します。

(b) 注意事項
  1. DAT形式の場合の,長さ0のデータの扱いを次に示します。
    …,"",… (長さ0のデータとして扱われます)
    …,,…   (ナル値として扱われます)
  2. バイナリ形式の場合は,実データ長に0が設定され,実データ部がない形式を長さ0のデータとして扱います。

(16) -y

データロード時,未使用ページを使い切った場合に,使用中ページの未使用領域へデータを格納したいときに指定します。このオプションを指定した場合,未使用領域にデータを格納する前にKFPH26010-Iメッセージを出力します。

(a) 適用基準

通常,データロード時に未使用ページを使い切った場合はエラーとなり,処理がロールバックされます。これを避けるため,使用中ページの未使用領域にもデータを格納して,とりあえずデータロードを完了させたい場合に指定します。

(b) 規則
  1. -lオプションにp(更新前ログ取得モード)は指定できません。
  2. 未使用ページを使い切った後のデータの格納には,ページ内空き領域比率の指定値は適用されません。
  3. 未使用ページを使い切った後,-nオプションの指定は適用されません。

(17) -o

インデクス一括作成が正常終了した後,index文に指定したインデクス情報ファイルを自動的に削除する場合に指定します。なお,idxwork文に指定したディレクトリ,及びpdloadが自動的に作成した/tmpディレクトリのインデクス情報ファイルは,このオプションの指定に関係なく,インデクスの一括作成が正常終了した後に削除されます。

(a) 適用基準

特にプラグインインデクスを作成するときのインデクス情報ファイルは大容量となり,インデクス情報ファイルを削除しないでおくと,ディスク容量を圧迫することになります。このインデクス情報ファイルの削除し忘れに備え,インデクス一括作成終了後に自動的にインデクス情報ファイルを削除する場合に,このオプションを指定します。

(b) 規則

RDエリア単位にデータロードする場合,次の条件に該当するインデクスについては,データロード後に出力したインデクス情報ファイルを使用してpdrorg(-k ixmk)を実行する必要があるため,-oオプションを指定しても無視されます。

(18) -m〔 経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル

経過メッセージ出力間隔 〜<符号なし整数>((1〜1000))《10》
処理の実行状況を出力するメッセージの出力間隔を,1万行単位で指定します。なお,このメッセージは,-mオプションにlvl2を指定すると,トラブルシュート情報を出力するワークファイルにも出力されます。
<適用基準>
省略時仮定値の10万行間隔出力が長い場合,又は短い場合に,任意に指定してください。
<注意事項>
インデクス一括作成中の場合,このオプションの指定は無効となり,インデクス作成の開始時,及び終了時にだけメッセージが出力されます。

インフォメーションメッセージ出力抑止レベル 〜《lvl0》
実行した端末の標準出力,syslogfile,及びメッセージログファイルへのインフォメーションメッセージの出力を抑止します。標準出力,syslogfile,及びメッセージログファイルのすべての出力を抑止する場合,トラブルシュート情報はワークファイルに出力します。指定できるオプションとメッセージの出力先を次の表に示します。

表5-7 オプションの指定値とメッセージの出力先

オプションの指定値 意味 出力先
標準出力 syslogfile及びメッセージログファイル ワークファイル
lvl0 出力を抑止しない ×
lvl1 標準出力への出力を抑止する × ×
lvl2 標準出力,syslogfile及びメッセージログファイルへの出力を抑止する × ×

(凡例)
○:メッセージを出力します。
×:メッセージを出力しません。

ワークファイルにメッセージを出力するのはトラブルシュート目的(ユティリティの動作を確認するため)であり,通常,メッセージを確認する必要がない場合はlvl1を指定することをお勧めします。
ワークファイル
ワークファイルは,-mオプションにlvl2を指定すると,ユティリティを実行するごとに各サーバに作成されます。このため,pdcspoolコマンドでHiRDBによって定期的に削除されるように,pd_tmp_directoryオペランドにディレクトリを指定しておくことをお勧めします。ワークファイルの出力先を次の表に示します。

表5-8 ワークファイルの出力先

システム定義のpd_tmp_directoryオペランドの指定 環境変数TMPDIRの指定 ワークファイルの出力先
あり pd_tmp_directoryオペランドに指定したディレクトリ
なし あり 環境変数TMPDIRに指定したディレクトリ
なし /tmpディレクトリ

(凡例)
−:該当しません。

なお,ファイルオープンエラーやI/Oエラーなどのためにインフォメーションメッセージがワークファイルへ出力できない場合は,エラーメッセージが出力されますが,処理は続行します。
ワークファイルは,HiRDBが自動で作成します。ファイル名称は,PDLOAD-aa-bbの形式で決められます。それぞれの意味について説明します。
  • PDLOAD:pdloadが出力したことを示す固定のプリフィクスです。
  • aa:インナレプリカ機能を使用していない場合は,プロセスのサーバ名称です。インナレプリカ機能を使用している場合は,プロセスのサーバ名称,GN,及び世代番号を組み合わせた文字列です。
  • bb:ファイル作成時間,及びプロセスIDです。

(19) -X サーバ間通信の応答監視時間

   〜<符号なし整数> ((1〜65535)) 《300》

コマンドを実行したサーバで通信障害などの障害が発生した場合,コマンドは無応答となり,業務が停止するおそれがあります。pdloadでは障害を検知するために,コマンドで実施されるディクショナリ操作についての通信の応答時間を監視できます。

-Xオプションには,ディクショナリ操作での応答監視時間を秒数で設定します。ディクショナリ操作時の実行時間が,-Xオプションに設定した時間を超えた場合は,pdloadはディクショナリアクセスで障害が発生したと判断し,リターンコード8で処理を打ち切ります。

<適用基準>
  • 通信障害やユニットダウンによってサーバから応答が返らない状態となった場合に,300秒より早く障害を検知したいとき,-Xオプションに300より小さい値を指定してください。
  • 系切り替え機能を使用している場合,系切り替えが完了しているにもかかわらず,コマンドが応答を待ち続けることがあります。その場合は,監視時間を短く設定することで,コマンドを即時終了できます。
  • 同時実行するアプリケーションやユティリティの多重度が高い場合など,ディクショナリからの応答が遅延し,-Xオプションのデフォルトである300秒以内にユティリティの前処理が完了しないときは,監視時間でタイムアウトするおそれがあります。このような環境では,-Xオプションには300より大きい値を指定してください。

(20) -q 世代番号

   〜<符号なし整数>((0〜10))

インナレプリカ機能を使用している場合,データロード対象となるRDエリアの世代番号を指定します。

世代番号は次のように指定します。

0:オリジナルRDエリアを対象とする場合

1〜10:指定した世代のレプリカRDエリアを対象とする場合
(a) 適用基準

インナレプリカ機能を使用していて,カレントRDエリア以外のRDエリアにデータロードする場合に指定します。

(b) 規則
  1. インナレプリカ機能を使用していない場合,このオプションは指定できません。
  2. このオプションを省略した場合,カレントRDエリアが対象となります。
  3. レプリカRDエリアに対してRDエリア単位にデータロードする場合,source文にオリジナルRDエリア名を指定し,-qオプションに対象となる世代番号を指定します。
  4. pdloadは,データロード対象となるRDエリアの世代が一致しているかどうかをチェックします。次のチェックをして,エラーがあった場合にはメッセージを出力してから,リターンコード8で終了します。
    横分割表間で世代番号が一致しているかどうかのチェック:
    横分割表に対してデータロードする場合,格納先のRDエリア間の世代チェックをします。
    -qオプション指定時は,各格納先に,指定した世代のRDエリアがあるかどうかをチェックします。-qオプション省略時は,各格納先のカレントRDエリアの世代番号が同一かどうかをチェックします。
    表及びインデクスを格納するRDエリア間の世代番号が同一かどうかのチェック:
    表及びインデクスを格納するRDエリアの世代チェックをします。
    -qオプション指定時は,データロード対象となるRDエリアに,指定した世代があるかどうかをチェックします。-qオプション省略時は,データロード対象となるカレントRDエリアが,すべて同じ世代かどうかをチェックします。
    処理対象RDエリアのレプリカステータスが同一かどうかのチェック:
    -qオプション指定時に,処理対象RDエリアにカレントRDエリアとカレントRDエリア以外が混在していないかをチェックします。
  5. インナレプリカ機能の使用有無による各ファイルの利用可否を次に示します。
    ファイル出力時の条件 ファイルの利用可否
    インナレプリカ機能未使用 インナレプリカ機能使用
    オリジナルRDエリア レプリカRDエリア
    同一世代 別の世代
    インデクス情報ファイル インナレプリカ機能未使用 × ×
    インナレプリカ機能使用 オリジナルRDエリア × ×
    レプリカRDエリア × × ×
    LOB中間ファイル インナレプリカ機能未使用 × ×
    インナレプリカ機能使用 オリジナルRDエリア × ×
    レプリカRDエリア × × ×
    (凡例)
    ○:ファイルを利用できます。
    ×:ファイルは利用できません。
    注※
    ファイル出力時の世代情報と,-qオプションで指定した世代情報が同じ場合を示します。-qオプション省略時は,ファイル出力時の世代情報とカレントRDエリアの世代情報が同じ場合を示します。

(21) -K{ i | f }

表に定義したすべてのXML型の列について,XML型のパラメタに対する入力データ値の形式を指定します。表にXML型の列が定義されていない場合,このオプションを指定するとエラーになります。

i :
XML型のパラメタに対する入力データ値を入力データファイルに直接記述します。

f :
XML型のパラメタに対する入力データ値ごとにファイルを用意し,そのファイル名称を入力データファイルに記述します。
(a) 入力データ値の形式

XML型の列を定義した表へデータロードする場合に選択できる入力データ値の形式を次の表に示します。入力データ値の形式は,-Kオプションで指定します。

表5-9 XML型の列を定義した表へデータロードする場合の入力データ値の形式

入力データ形式 説明 備考
埋め込み形式(-K i指定) ほかの列のデータと同様の入力ファイル形式に従って,入力データファイル内にXML文書を埋め込みます。 入力データファイル中のデータはBINARY型の形式で記述します。
ファイルパス指定形式(-K f指定) XMLデータを格納したファイルを個々に用意し,入力データファイル内に対応するファイルパス名を記述します。 入力データファイル中のファイルパス名はBINARY型の形式,又はCHAR型の形式で記述します。
(b) 指定できる入力データファイルの形式

XML文書,及びESIS-B形式のデータをデータロードするときに指定できる,入力データファイルの形式を次の表に示します。

表5-10 指定できる入力データファイルの形式

入力データファイルの形式 入力データ値の形式(-Kオプション指定値)と入力データ種別(-Gオプション指定値)
埋め込み形式(-K i) ファイルパス指定形式(-K f)
ESIS-B形式(-G esisb) XML文書(-G xml) ESIS-B形式(-G esisb) XML文書(-G xml)
DAT形式 × ×
拡張DAT形式 × ×
固定長データ形式(CHAR型指定) × ×
固定長データ形式(BINARY型指定)
バイナリ形式 × ×
pdrorg出力バイナリ形式 × × ×

(凡例)
○:pdloadで指定できます。
×:pdloadで指定できません。

(22) -G{ xml | esisb }

表に定義したすべてのXML型の列について,入力データファイルとして指定したXMLデータのデータ種別(XML文書又はESIS-B形式)を指定します。表にXML型の列が定義されていない場合,このオプションを指定するとエラーになります。

xml :
入力データファイル中のXML型のパラメタとして指定したデータが,XML文書であることを示します。

esisb :
入力データファイル中のXML型のパラメタとして指定したデータが,ESIS-B形式のデータであることを示します。
(a) 入力データ種別

XML型の入力データとして,次のデータを選択できます。入力データ種別は,-Gオプションで指定します。

(b) XML型のデータロード時に使用する列構成情報ファイル,及びナル値・関数情報ファイルの指定方法

XML型の列を定義した表へのデータロード時に,列構成情報ファイル,又はナル値・関数情報ファイルを使用する場合,次のコンストラクタ関数を指定する必要があります。

列構成情報ファイルを使用する場合のコンストラクタ関数は次のとおりです。

入力データファイルの形式 入力データ種別ごとの列構成情報ファイルへの指定方法
ESIS-B形式(-G esisb) XML文書(-G xml)
DAT形式 列名,
func=(XML,param=binary)
[,filedir=パス名]
列名,
func=(XMLPARSE,param=integer,
param=binary,param=integer)
[,filedir=パス名]
拡張DAT形式
固定長データ形式(CHAR型指定) func=(XML,param=binary,
type=char())
[,filedir=パス名]
列名,
func=(XMLPARSE,param=integer,
type=integer,param=binary,type=char()
[,null=(先頭位置,[{c|x}]’比較値’)]
[,filldata=埋め字データ]
,param=integer,type=integer)
[,filedir=パス名]
固定長データ形式(BINARY型指定) func=(XML,param=binary
,type=binary())
[,filedir=パス名]
列名,
func=(XMLPARSE,param=integer,
type=integer,param=binary,type=binary()
[,null=(先頭位置,[{c|x}]’比較値’)]
,param=integer,type=integer)
[,filedir=パス名]
バイナリ形式
pdrorg出力バイナリ形式 列名,
func=(XML,param=binary)

(凡例)
−:指定できません。

入力データ種別がXML文書の場合,入力データには,XMLPARSE関数の第2引数のデータだけ指定してください。データの指定方法は,「5.5.1 DAT形式の場合」,又は「5.5.3 固定長データ形式の場合」を参照してください。第1引数と第3引数は,pdloadがデータ値を設定します。

ナル値・関数情報ファイルを使用する場合のコンストラクタ関数は次のとおりです。

入力データファイルの形式 入力データ種別ごとの列構成情報ファイルへの指定方法
ESIS-B形式(-G esisb) XML文書(-G xml)
DAT形式
拡張DAT形式
固定長データ形式(CHAR型指定)
固定長データ形式(BINARY型指定)
バイナリ形式 func=(XML,param=binary
[,null=(先頭位置,[{c|x}]’比較値’)])
func=(XMLPARSE,param=integer
,param=binary
[,null=(先頭位置,[{c|x}]’比較値’)]
,param=integer)
pdrorg出力バイナリ形式

(凡例)
−:指定できません。

入力データ種別がXML文書の場合,入力データには,XMLPARSE関数の第2引数のデータだけ指定してください。データの指定方法は,「5.5.2 バイナリ形式の場合」を参照してください。第1引数と第3引数は,pdloadがデータ値を設定します。

(23) -F

FLOAT型及びSMALLFLT型の入力データ値がOSの制限値に満たない場合,又はOSの制限値を超えている場合に,入力データ値をOSの制限値内に補正するときに指定します。-Fオプション指定時に入力データ値が補正される範囲を次の図に示します。

図5-13 -Fオプション指定時に入力データ値が補正される範囲

[図データ]

(a) 規則

(24) 認可識別子.〕表識別子

データロードする表の表識別子を指定します。認可識別子を省略した場合,HiRDBに接続したときのユーザの名称が仮定されます。

(a) 規則

認可識別子又は表識別子を引用符('')で囲んだ場合は,英大文字と英小文字が区別されます。引用符('')で囲まない場合は,すべて英大文字として扱われます。なお,sh(Bourneシェル),csh(Cシェル),及びksh(Kシェル)の場合は,更にアポストロフィ(’)で囲む必要があります。

(25) 制御情報ファイル名

データベース作成ユティリティの制御文を記述した制御情報ファイルの名称を指定します。

制御情報ファイル中に記述できる制御文を次に示します。各制御文については,5.4.3〜5.4.17を参照してください。

(a) 指定できる制御文の個数

制御情報ファイルに指定できる制御文の個数を次に示します。

制御文 指定できる制御文の最大数
mtguide文 1
emtdef文 1
source文 1
index文 インデクス数×格納RDエリア数
idxwork文 インデクス格納サーバ数
sort文 インデクス格納サーバ数
lobdata文 1
lobcolumn文 LOB列数
lobmid文 1
srcuoc文 1
array文 1
extdat文 1
src_work文 1
constraint文 1
option文 1
report文 1
(b) 制御文とオプションの関係

制御文とオプションの関係を次に示します。

(凡例)
◎:必要
○:任意
−:不要

(凡例)
◎:必要
○:任意
−:不要

注※
抽象データ型の列に格納する,データを生成するコンストラクタ関数への入力パラメタとするLOBの場合は,指定しても無視されます。

(凡例)
◎:必要
○:任意
−:不要
(c) 制御文で記述するファイル,及びディレクトリについて

制御文で記述するファイル,及びディレクトリの規則を次に示します。

  1. HiRDB管理者に対してアクセス権限を与えておく必要があります。