スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)
データロードするときの,データ処理に関するオプション機能について指定します。
option 〔spacelvl={0|1|3}〕 〔tblfree={未使用領域比率|(〔未使用領域比率〕,セグメント内空きページ比率)}〕 〔idxfree=未使用領域比率〕 〔job={ジョブ名〔,同期点行数〕〔,CLR〕|,,CLR}〕 〔cutdtmsg={on|off}〕 〔nowait={yes|no}〕 〔bloblimit=領域確保サイズ〕 〔exectime=pdloadの実行監視時間〕 〔null_string={null|default}〕 〔dataerr=rollback〕 〔lengover=err〕 〔divermsg=off〕 〔srcendian={big|little}〕 〔allspace=zero〕 〔whitespace={preserve|strip}〕 〔seq_range={buff|順序番号取得単位|all}〕 〔file_buff_size=バッファ長〕 〔charset={utf-16be|utf-16le}〕 |
入力データに対して,空白変換をするかどうかを指定します。
0,1,及び3のことを,空白変換レベルといいます。
spacelvlオペランドを省略した場合,システム共通定義のpd_space_levelオペランドの指定値に従って空白変換をします。
データロード時に,CREATE TABLEで指定した空き領域比率(PCTFREEの指定値)を変更してデータを格納したい場合に指定します。
インデクス一括作成モードでインデクスを作成する場合に,CREATE INDEXで指定した空き領域比率(PCTFREEの指定値)を変更してインデクスを作成したいときに指定します。
指定できる値は,0〜99です。
同期点指定のデータロードをする場合に指定します。
同期点指定のデータロードとは,任意の件数のデータを格納するごとに,トランザクションを決着するデータロードのことをいいます。ログ取得方式がログ取得モード(-l a)又は更新前ログ取得モード(-l p)の場合,データの格納途中で障害が発生したときでも,データを最初から格納し直す必要がなく,短時間でデータベースを回復できます。この場合の対処方法については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「同期点指定のデータロード実行中にユティリティが異常終了したときの対処方法」を参照してください。
なお,監査証跡表にデータロードする場合,自動的に監査証跡ファイルの世代ごとにCOMMITを行なうため,件数単位にCOMMITを指示するこのオペランドは指定できません。指定すると,制御文エラーとなります。
保持している同期点情報(同期点行数) | 表単位の同期点指定のデータロードをした場合の入力開始行 | ||
---|---|---|---|
RDエリア1 | RDエリア2 | RDエリア3 | |
0 | 0 | 0 | 0件目 |
0 | n | 0 | n件目 |
n | 0 | m | 実行できません。 |
n | m | p | 実行できません。 |
DAT形式の入力データファイルのデータロード時に,次のデータ型の列に対して文字データを格納する場合,入力データのデータ長が表の列定義長より長いときは,表の列定義長以上のデータ部分は切り捨てられます。
この切り捨てが発生したときに,エラー情報ファイルに警告メッセージ(KFPL31090-W)を出力するかどうかを指定します。
データロード中の表に対して,NOWAIT検索をするかどうかを指定します。NOWAIT検索とは,排他オプションにNOWAITを指定して検索するSQLのことをいいます。
〜<符号なし整数>((1〜2097152))
pdrorg出力バイナリ形式の入力データファイルで,次のデータ変換をしてデータロードする場合,データをメモリ上に保持しなければならないときがあります。
このとき,データを保持する領域の大きさをキロバイト単位で指定します。ただし,BLOBパラメタ又はBLOB型の定義長と,このオペランドの指定値を比べて,小さい方の大きさで領域を確保します。
なお,pdrorg用アンロードファイルを使用してBLOB型の列を持つ表へデータロードする場合は,BLOB型の定義長ではなく,実際データベースに格納されているBLOBデータの実長に合わせた領域を確保するときにこのオペランドを指定します。BLOBデータの最大長はアンロードした表からSQLで求めることができます。バッファは複数のBLOB型の列で共用します。実際に確保する領域の大きさを次に示します。
MIN(表の全BLOB型の定義長の合計,bloblimitオペランドの指定値) |
確保した領域より入力したBLOBデータの合計長が長くなった場合は処理を打ち切ります。
〜<符号なし整数>((1〜35791394))≪0≫
pdloadの実行時間を監視する場合に,その監視時間を分単位で指定します。省略した場合は,実行時間の監視はしません。指定した監視時間内にpdloadの処理が終了しなかった場合,pdload制御プロセスを強制終了し,無応答原因の調査用に障害情報を取得します。
このオペランドの値は,システム定義のpd_utl_exec_timeオペランドの指定値よりも優先されます。
DEFAULT句を指定している表に対してデータロードする場合,入力データがナル値("*"又は記述しない場合)のときに,DEFAULT句の既定値を格納するか,又はナル値を格納するかを指定します。
このオペランドは,入力データファイルがDAT形式の場合に指定できます。バイナリ形式,固定長データ形式,及びpdrorg生成バイナリ形式の場合に指定するとエラーになります。
入力データエラー(論理エラー)を検知した場合,データ格納処理を無効(ロールバック)にするときに指定します。
-eオプションとdataerrオペランドの関係を表5-15に示します。また,dataerrオペランドとほかのオプション,制御文を同時に指定する場合の留意事項を表5-16に示します。
表5-15 -eオプションとdataerrオペランドの関係
-eオプション | option文のdataerrオペランド | 入力データエラーを検知した場合のpdloadの動作 | トランザクション決着方法 | pdloadのリターンコード |
---|---|---|---|---|
指定なし | 指定なし | エラーデータのDB格納処理をスキップして,処理を続行します。 | コミット | 4 |
指定あり | エラーデータを検知した時点で処理を打ち切ります。 | ロールバック | 8 | |
指定あり | 指定なし | エラーデータを検知した時点で処理を打ち切ります。 | コミット | 4 |
指定あり | エラーデータを検知した時点で処理を打ち切ります。 | ロールバック | 8 |
表5-16 dataerrオペランドとほかのオプション,制御文を同時に指定する場合の留意事項
オプション及び制御文 | dataerrオペランドと同時に指定する場合の留意事項 |
---|---|
-d | 同時に指定すると制御文エラーとなります。 |
-l | a又はpを指定してください。 |
-i | 次の条件をすべて満たす場合,ロールバック後はインデクス未完状態となるため,同時に指定すると制御文エラーとなります。
|
キー重複エラーの可能性があるデータロードの場合,sを指定してください。s以外を指定した場合,キー重複エラーを検知しても,表に格納したデータはロールバックされません。 | |
-k | f,v,又はcを指定した場合,ロールバック後に不要なLOB中間ファイルが残ります。pdloadの再実行前には,この不要なLOB中間ファイルを削除してください。 |
f,v,又はcを指定した場合,LOB列へのデータロード中にエラーを検知したときは,dataerrオペランドの指定に関係なくLOB列構成基表はコミット,LOB列はロールバックとなります。この場合,LOBデータを修正して再度データロードしてください。 | |
-e | オプションの指定に関係なく,エラーデータを検知した時点で処理を打ち切り,ロールバックします。 |
上記以外のオプション | 特にありません。 |
option文のjobオペランド | 同時に指定すると制御文エラーとなります。 |
source文のRDエリア名 | 次の条件をすべて満たす場合,ロールバック後はインデクス未完状態となるため,同時に指定すると制御文エラーとなります。
|
source文のerrorオペランド | 検知したエラーの情報を出力した後,ロールバックします。 |
source文のerrdataオペランド | 同時に指定すると制御文エラーとなります。 |
上記以外の制御文 | 特にありません。 |
DAT形式(拡張DAT形式を含む)の入力データファイルの,次のデータ型の列に格納する入力データ長が列定義長より長い場合,入力データエラーとして扱うときに指定します。
入力データ長,列定義長,及びlengoverオペランドの関係を表5-17に示します。また,lengoverオペランドとほかのオプション,制御文を同時に指定する場合の留意事項を表5-18に示します。
表5-17 入力データ長,列定義長,及びlengoverオペランドの関係
入力データ長と列定義長の関係 | lengover指定なし | lengover指定あり |
---|---|---|
m=n | 入力データをそのまま格納します。 | |
m<n | 入力データのm+1以降のデータは切り捨てて格納します。 | 入力データエラーとして扱います。 |
m>n |
|
表5-18 lengoverオペランドとほかのオプション,制御文を同時に指定する場合の留意事項
オプション及び制御文 | lengoverオペランドと同時に指定する場合の留意事項 |
---|---|
-a,-b | lengoverオペランドはDAT形式の場合に有効なオペランドのため,同時に指定すると制御文エラーとなります。 |
上記以外のオプション | 特にありません。 |
option文のcutdtmsgオペランド | cutdtmsgオペランドを指定しなくてもKFPL31090-Eメッセージが出力されます。 |
option文のdataerrオペランド | ロールバック対象の入力データエラーとして扱います。 |
extdat文 | 拡張DAT形式の入力データファイルでも有効となります。 |
source文のerrorオペランド | KFPL31090-W/Eメッセージの出力回数が次のように変わります。
|
source文のerrdataオペランド | エラーデータファイルに該当データを出力します。 |
上記以外の制御文 | 特にありません。 |
分割格納条件を変更した表に対して,RDエリア単位にデータロードする場合,入力データ中にRDエリアの格納条件と一致しない行データがあると,エラーデータ情報を出力します。このエラーデータ情報の出力を抑止する場合,このオペランドを指定します。
このオペランドは,データロード対象表が横分割表で,かつRDエリア単位にデータロードする場合に有効となります。これ以外の条件でこのオペランドを指定した場合,指定は無視されます。
分割格納条件と一致しない行データがある場合の,divermsgオペランドと各項目との関係を次の表に示します。
表5-19 分割格納条件と一致しない行データがある場合の,divermsgオペランドと各項目との関係
項目 | divermsgオペランド | |
---|---|---|
指定あり | 指定なし | |
pdloadのリターンコード | 0※ | 4 |
エラー情報ファイル | KFPL31009-Eメッセージを出力しません。 | KFPL31009-Eメッセージを出力します。 |
エラーデータファイル | エラーデータを出力しません。 | エラーデータを出力します。 |
-eオプション | 無効 | 有効 |
エンディアンが異なるプラットフォーム間でpdrorg出力バイナリ形式ファイルを使用してデータを移行する場合,移行先で入力データファイルのエンディアンを指定し,移行先のエンディアンに変換します。移行元と移行先のプラットフォームのエンディアンが同じ場合は,このオペランドの指定は不要です。
移行元と移行先でエンディアンが異なる場合のオペランド指定を次の表に示します。
表5-20 移行元と移行先でエンディアンが異なる場合のオペランド指定
移行元 | 移行先 | |
---|---|---|
ビッグエンディアン | リトルエンディアン | |
ビッグエンディアン | −※1 | srcendian=big |
リトルエンディアン | srcendian=little | −※2 |
固定長データ形式の入力データファイルを使用してデータロードする場合,数値データ型(INTEGER,SMALLINT,DECIMAL,FLOAT,SMALLFLT)の列に格納する文字データを「0」と変換して格納するときに指定します。なお,この場合の文字データとは,文字形式で指定(type=char(n),type=adec(n,m))し,かつその指定値がすべて空白(0x20),タブ(0x09),ナル文字(0x00)というデータです。
このオペランドは,-aオプションを指定した固定長データ形式の入力データファイルの場合だけ有効となります。そのほかの形式の場合にこのオペランドを指定した場合,指定は無視されます。
allspaceオペランドの指定と,数値データ型の列に文字データを格納する場合のpdloadの動作を次の表に示します。
表5-21 allspaceオペランドの指定とpdloadの動作
allspaceオペランド | pdloadの動作 |
---|---|
指定なし | データ変換エラーとし,KFPL31004-Eメッセージをエラー情報ファイルに出力して,DB格納処理をスキップします。 |
指定あり | 該当する列のデータ型の「0」をDBに格納します。 |
XML型の列に対してXML文書をデータロードする場合に,XML文書に含まれる空白類の取り扱い方法を指定します。
自動採番機能を使用してデータロードする場合,順序番号の取得方式を指定します。
順序数生成子循環オプションにcycleを指定していない順序数生成子の場合,順序番号の範囲を超える値は取得できません。そのため,allを指定した場合は,順序番号が取得範囲を超えた時点でエラー終了します。また,all以外を指定した場合は,順序番号が取得範囲を超えて,指定した取得単位の順序番号を取得できなかったときにエラー終了します。
〜<符号なし整数>((32〜512000)) (単位:KB)
このオペランドはseq_range=buffの場合に指定できます。入力バッファに入力データファイルのデータを読み込む場合に,使用する入力バッファ用のメモリサイズを指定します。
このオペランドを省略した場合は,システム定義のpd_utl_file_buff_sizeオペランドの指定値が有効となります。
UTF-8の環境で定義した表に対して,UTF-16の入力データファイルでデータロードする場合,入力データファイルのエンディアンを指定します。このオペランドは,入力データファイルが次の形式の場合に指定できます。
このオペランドを省略した場合,入力データファイルの文字コードはUTF-8と判断してデータロードをします。
また,このオペランドを指定した場合,UTF-8の列へUTF-16のデータを格納するため,pdloadが文字コード変換をします。文字コード変換が発生するのは,CHAR,VARCHAR,MCHAR,及びMVARCHAR,並びに抽象データ型のCHAR,VARCHAR,MCHAR,及びMVARCHARです。変換前と変換後でデータ長が変わる場合,pdloadがデータ長を調整します。列のデータ型と変換後データ長の組み合わせによるデータ長の調整方法を次の表に示します。
表5-22 列のデータ型と変換後データ長の組み合わせによるデータ長の調整方法
列のデータ型 | 変換後データ長 | |
---|---|---|
変換後データ長≦列定義長 | 変換後データ長>列定義長 | |
CHAR,及びMCHAR | データを左詰めにし,足りない部分に空白を埋めて格納します。 | データを左詰めにし,列定義長を超える部分を切り捨てて格納します。※ |
VARCHAR,及びMVARCHAR | 変換後データ長でデータを格納します。 |
lengoverオペランド | cutdtmsgオペランド | データの切り捨てが発生した場合の処理 |
---|---|---|
省略 | 省略又はoff | そのまま処理を続行します。 |
on | エラー情報ファイルに警告メッセージを出力し,処理を続行します。 | |
err | − | 異常終了します。 |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.