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

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

5.4.16 option文(データ処理に関する情報の記述)

データロードするときの,データ処理に関するオプション機能について指定します。

<適用基準>
次のどれかのオプション機能を使用したい場合に指定します。
  • 空白変換レベルの指定(spacelvlオペランド)
  • データロード時の,空き領域比率の変更(tblfreeオペランド)
  • インデクス作成時の,空き領域比率の変更(idxfreeオペランド)
  • 同期点指定のデータロード(jobオペランド)
  • データの切り捨てが発生した場合の警告メッセージ出力有無(cutdtmsgオペランド)
  • データロードする表に対するNOWAIT検索の実行(nowaitオペランド)
  • pdrorg出力バイナリ形式の入力データファイルにLOB列又はLOBパラメタがある場合の指定(bloblimitオペランド)
  • pdloadの実行時間の監視(exectimeオペランド)
  • DEFAULT句を指定している表へのデータロードで,入力データがナル値の場合のデータの格納方法(null_stringオペランド)
  • 入力データエラーを検知した場合,それまでの格納処理を無効にする指定(dataerrオペランド)
  • DAT形式の入力データファイルの場合,入力データ長が列定義長より長いときに入力データエラーとする指定(lengoverオペランド)
  • エラーデータ情報の抑止(divermsgオペランド)
  • エンディアンが異なるプラットフォーム間でpdrorg出力バイナリ形式ファイルを使用してデータを移行する場合の指定(srcendianオペランド)
  • 入力データファイルが固定長データ形式の場合で,数値データ型の列に文字データを格納するときの格納方法(allspaceオペランド)
  • XML文書に含まれる空白類の取り扱い方法(whitespaceオペランド)
  • 自動採番機能を使用したデータロード(seq_range,file_buff_sizeオペランド)
  • UTF-8の環境で定義した表に対して,UTF-16の入力データファイルでデータロードする場合の指定(charsetオペランド)
<この項の構成>
(1) 形式
(2) 説明

(1) 形式

 
 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}〕
 

(2) 説明

(a) spacelvl={0|1|3}

入力データに対して,空白変換をするかどうかを指定します。

0,1,及び3のことを,空白変換レベルといいます。

spacelvlオペランドを省略した場合,システム共通定義のpd_space_levelオペランドの指定値に従って空白変換をします。

0:
入力データの空白変換をしません。

1,及び3:
入力データの空白変換をします。1と3のどちらを指定しても意味は同じです。
空白変換をする場合,データロード対象の表の列が各国文字列型,又は混在文字列型のとき,対応する入力データを次のように変換してデータベースに格納します。
  • 各国文字列型の列の場合
    入力データ中の連続する半角空白2バイトを,全角空白1文字に変換します。ただし,先頭から2バイト単位で変換します。
  • 混在文字列型の列の場合
    入力データ中の全角空白1文字を,半角空白2バイトに変換します。
    文字コードがutf-8の場合,全角空白1文字(3バイト)を半角空白2バイトに変換します。MCHARの場合は,データ長が短くなった分,定義長まで後ろから半角空白が埋められます。MVARCHARの場合は,データ長が短くなったままとなります。
抽象データ型の列に対してコンストラクタ関数を介してデータを格納する場合,対応するコンストラクタ関数の引数のデータ型が各国文字列型,又は混在文字列型のときは,入力データを引数としてコンストラクタ関数に渡す前に空白変換をします。

<適用基準>
表データ中の空白文字を統一したい場合に指定します。
表データ中の空白文字を統一する方法については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

<注意事項>
spacelvlオペランドを指定して空白変換をする場合,及びシステム共通定義の指定によって空白変換をする場合は,次のことに注意してください。
  1. クラスタキー順のチェックはデータ変換後の値でするため,変換前のデータがクラスタキー順でも順序エラーとなることがあります。この場合,-xオプションを指定して,クラスタキー順のチェックをしないようにしてください。クラスタキー順に格納したい場合は,データロード後に再編成をしてください。
  2. ユニークキーインデクス又は主キーインデクスを構成する列が空白変換対象の場合,そのインデクスに対して重複キーが発生することがあります。この場合,次のように対処しておく必要があります。
    ・ユニークキーインデクスの場合
    事前にインデクスのユニーク指定を外すか,又は入力データ中の該当するデータを変更してください。
    ・主キーインデクスの場合
    入力データ中の該当するデータを変更してください。
  3. 列構成情報ファイル,及びナル値・関数情報ファイルで指定するナル値の比較値については,空白変換はしません。この場合,ナル値の比較値は,空白変換前の入力データと比較します。
  4. 入力データの長さのチェックは,空白変換前の入力データと比較します。
(b) tblfree={未使用領域比率|(〔未使用領域比率〕,セグメント内空きページ比率)}

データロード時に,CREATE TABLEで指定した空き領域比率(PCTFREEの指定値)を変更してデータを格納したい場合に指定します。

未使用領域比率
0〜99の値を指定できます。

セグメント内空きページ比率
0〜50の値を指定できます。

<適用基準>
表定義時に空き領域比率に0以外を指定した表の場合,データロード中に定義時の空き領域比率が適用されたことによって,データ格納時にRDエリアの容量不足が発生することがあります。このような場合に指定すると,暫定的にRDエリアを拡張しないで,データロードを完了できます。

<注意事項>
このオペランドを指定した場合,-yオプションを指定して空き領域へデータ格納するよりも,次の点で効率が良くなります。
  • 空き領域にデータを格納する場合も一括入出力が有効となります。
  • -lオプションにpを指定できます。
(c) idxfree=未使用領域比率

インデクス一括作成モードでインデクスを作成する場合に,CREATE INDEXで指定した空き領域比率(PCTFREEの指定値)を変更してインデクスを作成したいときに指定します。

指定できる値は,0〜99です。

<適用基準>
インデクス定義時に空き領域比率に0以外を指定したインデクスの場合,インデクス一括作成処理中に定義時の空き領域比率が適用されたことによって,インデクス格納時にRDエリアの容量不足が発生することがあります。このような場合に指定すると,暫定的にRDエリアを拡張しないで,インデクス一括作成処理を完了できます。
(d) job=ジョブ名〔,同期点行数〕〔,CLR〕|,,CLR}

同期点指定のデータロードをする場合に指定します。

同期点指定のデータロードとは,任意の件数のデータを格納するごとに,トランザクションを決着するデータロードのことをいいます。ログ取得方式がログ取得モード(-l a)又は更新前ログ取得モード(-l p)の場合,データの格納途中で障害が発生したときでも,データを最初から格納し直す必要がなく,短時間でデータベースを回復できます。この場合の対処方法については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「同期点指定のデータロード実行中にユティリティが異常終了したときの対処方法」を参照してください。

なお,監査証跡表にデータロードする場合,自動的に監査証跡ファイルの世代ごとにCOMMITを行なうため,件数単位にCOMMITを指示するこのオペランドは指定できません。指定すると,制御文エラーとなります。

ジョブ名 〜〈英数字〉((1〜3))
同期点指定のデータロードを実行する場合のジョブ名を指定します。
ここで指定したジョブ名は,データロード実行中にユティリティが異常終了した場合,後から再実行するときの名称となります。また,このジョブ名はほかのpdloadのジョブ名と重複すると,再実行時に誤動作する原因になります。したがって,ジョブ名はユニークになる名称を指定してください。

同期点行数 〜((1〜1000))《100》
何万件格納するごとにトランザクションを決着するか,データ件数を指定します。例えば,100を指定すると,100万件ごとに同期点が取得されます。
ここで小さな値を指定した場合,少ない件数でトランザクションが決着するので,異常終了時のロールバック処理は短くなります。しかし,トランザクションの生成,決着,及びプロセスの再起動が頻繁に発生するため,オーバヘッドが大きくなります。一方,大きな値を指定した場合,処理性能の劣化は少なくなりますが,障害発生時の回復時間は長くなります。
ジョブ名を指定しないで同期点行数だけを指定した場合,エラーとなります。

CLR
pdloadを再実行する必要がない場合,又は現在データベース中にある同期点情報をクリアしてpdloadを再実行する場合に指定します。
ユティリティが異常終了した場合,同期点情報がデータベースに残ります。この情報が残ったままだと,次に実行したユティリティが正常に動作しない場合があります。
CLRを指定した場合,ほかのユーザやユティリティが設定した同期点情報でもクリアするため,注意して使用してください。
データベース中に同期点情報が設定されているかどうかは,データベース状態解析ユティリティ(pddbst)の表単位の状態解析で確認できます。

<適用基準>
大量のデータロードをする場合など,格納時間が長くなるときに有効となります。ただし,同期点処理が実行される分,処理性能は悪くなります。また,データページについては,同期点のたびに新たなページから格納を開始するため,データ格納に必要なページ数が通常のデータロードよりも多くなります。

<jobオペランドの指定例>
  • 100万件単位に同期点指定のデータロードをする場合
    job=JOB,100 又は job=JOB
  • 現在設定されている同期点情報をクリアして,新たに100万件単位の同期点指定のデータロードをする場合
    job=JOB,100,CLR 又は job=JOB,,CLR
  • 現在設定されている同期点情報をクリアして通常のデータロードをする場合
    job=,,CLR

<注意事項>
  1. 同期点情報は,ジョブ名で管理されます。例えば,同期点指定のデータロードを実行していたpdload(A)が異常終了した場合,その表に対して同じジョブ名を指定したpdload(B)を実行すると,pdload(A)が残した同期点情報を引き継いでpdload(B)が動作してしまいます。このため,ジョブ名が重複しないように管理する必要があります。
  2. 同期点指定のデータロードが異常終了した場合,そのときのジョブ名の同期点指定のデータロードを再実行するまでは,その表に対して通常のデータロード(同期点指定でないデータロード)も実行できません。
  3. 同期点情報はRDエリア単位に管理されます。このため,横分割した表の場合,次の条件では表全体の同期点情報が不一致となります。
    ・一部のRDエリアだけ再初期化された場合
    ・RDエリア単位の同期点指定のデータロードでエラーが発生した場合
    各RDエリアが管理している同期点情報は,ジョブ名が同じ場合でも行数が不一致のときは,再実行できません。しかし,同期点情報を保持しているRDエリアと保持していないRDエリアが混在する場合は,保持されている同期点情報で再実行できます。同期点情報のジョブ名が同じで行数が異なる場合の動作を次に示します。
    保持している同期点情報(同期点行数) 表単位の同期点指定のデータロードをした場合の入力開始行
    RDエリア1 RDエリア2 RDエリア3
    0 0 0 0件目
    0 n 0 n件目
    n 0 m 実行できません。
    n m p 実行できません。

    (凡例)
    0:同期点情報を保持していない状態
    n,m,p:保持している同期点行数

  4. 同期点指定のデータロードが異常終了した場合,再実行時のインデクス作成方法(-iオプション)は変更できません。
  5. EasyMTを使用した同期点指定のデータロード実行中に,異常終了する前にリマウント操作をした場合,再実行するときは1巻目からマウントし直して実行してください。
  6. 同期点指定のデータロードが異常終了してから再実行するまでに,RDエリアの再初期化,及びPURGE TABLE文を実行すると,設定されていた同期点情報が削除されます。
  7. 同期点指定のデータロードで,プラグインインデクスの一括作成処理中に異常終了した場合,「プラグインインデクス一括作成部分回復機能」を使用できるプラグインのプラグインインデクスであれば,エラーとなったプラグインインデクスをpdrorgで作成した後に,pdloadを再実行してください。pdrorgを実行しないでpdloadを再実行した場合,プラグインインデクスが全件作り直しになります。
  8. 同期点指定のデータロードで制御できるデータ件数の上限は4,294,960,000件です。これ以上のデータ件数のデータロードをする場合は,入力データファイルを複数に分けて,複数回pdloadを実行してください。
(e) cutdtmsg={on|off

DAT形式の入力データファイルのデータロード時に,次のデータ型の列に対して文字データを格納する場合,入力データのデータ長が表の列定義長より長いときは,表の列定義長以上のデータ部分は切り捨てられます。

この切り捨てが発生したときに,エラー情報ファイルに警告メッセージ(KFPL31090-W)を出力するかどうかを指定します。

on:警告メッセージを出力します。

off:警告メッセージを出力しません。

<規則>
  1. -eオプションを指定している場合は,cutdtmsg=offが仮定されます。
  2. DAT形式以外の入力データファイルに対しては,このオペランドを指定しても無視されます。
  3. cutdtmsg=onを指定して切り捨てが発生すると,すべてのデータが格納されても,pdloadのリターンコードは4となります。
  4. 警告メッセージは行数ではなく,データの切り捨てを検知したデータ件数分(列数,要素数分)出力されます。したがって,大量に出力される可能性があるので,cutdtmsg=onを指定する場合はディスク容量に注意してください。
  5. エラー情報ファイルに警告メッセージを出力しても,エラーデータファイルには該当する入力データを出力しません。
(f) nowait={yes|no

データロード中の表に対して,NOWAIT検索をするかどうかを指定します。NOWAIT検索とは,排他オプションにNOWAITを指定して検索するSQLのことをいいます。

yes:NOWAIT検索を実行する場合に指定します。

no:NOWAIT検索を実行しない場合に指定します。

<nowait=yesの場合の規則>
  1. インデクス一括作成モード(-i c)は指定できません。インデクス更新モード(-i s)を指定してください。
  2. ローカルバッファ(-nオプション)は使用できません。
  3. RDエリア単位のデータロードはできません。
  4. 作成モード(-dオプション指定)の場合,データ削除中はその表に対してNOWAIT検索はできません(排他待ちとなります)。データ格納中は,NOWAIT検索ができます。
  5. プラグインが提供する抽象データ型列がある表の場合,プラグインが無排他検索機能を提供しているかどうかで実行可否が決まります。無排他検索機能を提供しているかどうかについては,各プラグインマニュアルを参照してください。
  6. LOB列がある表のLOB列にだけデータロードをする場合,このオペランドの指定に関係なく,LOB列構成基表は参照でき,LOB列は参照できなくなります。LOB列を参照したい場合には,LOB列構成基表とLOB列を同時にデータロードしてください。
  7. pdloadが異常終了してロールバックしても,データロード処理でいったん使用中となったセグメントは解放されません。解放されないセグメントは,pdloadを再実行するときに再利用しますが,UAPのINSERT文,UPDATE文では再利用しません。このため,pdload再実行前に,UAPのINSERT文,UPDATE文を実行すると,該当するRDエリアの未使用セグメントがなくなるまで,pdload及びUAPで再利用できないセグメントが残ってしまいます。このセグメントを解放するには,pdrorgで表の再編成を実行する必要があります。この現象を回避するためには,RDエリアを参照可能閉塞状態にしてpdloadを実行します(pdloadが異常終了しても,UAPからその表に対してアクセスできません)。
  8. 共用表に対してyesを指定しても無視されます(noが仮定されます)。
(g) bloblimit=領域確保サイズ

   〜<符号なし整数>((1〜2097152))

pdrorg出力バイナリ形式の入力データファイルで,次のデータ変換をしてデータロードする場合,データをメモリ上に保持しなければならないときがあります。

このとき,データを保持する領域の大きさをキロバイト単位で指定します。ただし,BLOBパラメタ又はBLOB型の定義長と,このオペランドの指定値を比べて,小さい方の大きさで領域を確保します。

なお,pdrorg用アンロードファイルを使用してBLOB型の列を持つ表へデータロードする場合は,BLOB型の定義長ではなく,実際データベースに格納されているBLOBデータの実長に合わせた領域を確保するときにこのオペランドを指定します。BLOBデータの最大長はアンロードした表からSQLで求めることができます。バッファは複数のBLOB型の列で共用します。実際に確保する領域の大きさを次に示します。

 
MIN(表の全BLOB型の定義長の合計,bloblimitオペランドの指定値)

確保した領域より入力したBLOBデータの合計長が長くなった場合は処理を打ち切ります。

<適用基準>
次のどちらかの条件に該当する場合,このオペランドを指定してください。
  • 抽象データ型のBLOBパラメタのデータ→BLOB型の列の場合,そのBLOBパラメタのデータよりも後に,BLOBパラメタがある抽象データ型列へ格納するデータがあるとき
  • BLOBデータ→BLOBパラメタがある抽象データ型の列の場合,そのBLOBデータよりも前に,BLOB型の列へ格納するデータがあるとき

<規則>
  1. このオペランドは,pdload用アンロードファイルを使用するときだけ有効となります。
  2. 指定した大きさを超えるデータがある場合,エラーとなります。
(h) exectime=pdloadの実行監視時間

   〜<符号なし整数>((1〜35791394))≪0≫

pdloadの実行時間を監視する場合に,その監視時間を分単位で指定します。省略した場合は,実行時間の監視はしません。指定した監視時間内にpdloadの処理が終了しなかった場合,pdload制御プロセスを強制終了し,無応答原因の調査用に障害情報を取得します。

このオペランドの値は,システム定義のpd_utl_exec_timeオペランドの指定値よりも優先されます。

<適用基準>
夜間バッチなどで監視時間を設定しておけば,pdload実行中に何らかの障害(通信障害(一時的な障害を含む),ディスク障害など)が発生し,pdloadが無応答状態になった場合は異常終了するため,早期に異変を検知できて,早期に回復処理に着手できます。

<指定値の目安>
このオペランドは無応答障害検知を目的とするもので,長大トランザクション実行時間を監視するものではありません。したがって,指定値は,該当する表の処理時間に余裕をもたせた値にする必要があります。例えば,7,8分程度で終了するpdloadの実行時間を監視する場合は,exectime=10と指定しないで,exectime=20と指定するようにしてください。また,追加モードのデータロードをする場合,入力データファイルのデータ件数が一定でも,母体のデータ件数によって実行時間は変化するため,更に余裕のある値を指定してください(データ量が単調に増加する表では,適時指定値を見直す必要があります)。
(i) null_string={null|default}

DEFAULT句を指定している表に対してデータロードする場合,入力データがナル値("*"又は記述しない場合)のときに,DEFAULT句の既定値を格納するか,又はナル値を格納するかを指定します。

このオペランドは,入力データファイルがDAT形式の場合に指定できます。バイナリ形式,固定長データ形式,及びpdrorg生成バイナリ形式の場合に指定するとエラーになります。

null:ナル値を格納します。

default:DEFAULT句の既定値を格納します。
(j) dataerr=rollback

入力データエラー(論理エラー)を検知した場合,データ格納処理を無効(ロールバック)にするときに指定します。

-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 次の条件をすべて満たす場合,ロールバック後はインデクス未完状態となるため,同時に指定すると制御文エラーとなります。
  • RDエリア単位のデータロード
  • 非分割キーインデクスを格納したRDエリア数が表格納RDエリア数と一致しない
  • -iオプションがs以外
上記の条件をすべて満たさないように,pdloadのオプション,制御文の変更,又はインデクス定義の変更を検討してください。
キー重複エラーの可能性があるデータロードの場合,sを指定してください。s以外を指定した場合,キー重複エラーを検知しても,表に格納したデータはロールバックされません。
-k f,v,又はcを指定した場合,ロールバック後に不要なLOB中間ファイルが残ります。pdloadの再実行前には,この不要なLOB中間ファイルを削除してください。
f,v,又はcを指定した場合,LOB列へのデータロード中にエラーを検知したときは,dataerrオペランドの指定に関係なくLOB列構成基表はコミット,LOB列はロールバックとなります。この場合,LOBデータを修正して再度データロードしてください。
-e オプションの指定に関係なく,エラーデータを検知した時点で処理を打ち切り,ロールバックします。
上記以外のオプション 特にありません。
option文のjobオペランド 同時に指定すると制御文エラーとなります。
source文のRDエリア名 次の条件をすべて満たす場合,ロールバック後はインデクス未完状態となるため,同時に指定すると制御文エラーとなります。
  • RDエリア単位のデータロード
  • 非分割キーインデクスを格納したRDエリア数が表格納RDエリア数と一致しない
  • -iオプションがs以外
上記の条件をすべて満たさないように,pdloadのオプション,制御文の変更,又はインデクス定義の変更を検討してください。
source文のerrorオペランド 検知したエラーの情報を出力した後,ロールバックします。
source文のerrdataオペランド 同時に指定すると制御文エラーとなります。
上記以外の制御文 特にありません。
(k) lengover=err

DAT形式(拡張DAT形式を含む)の入力データファイルの,次のデータ型の列に格納する入力データ長が列定義長より長い場合,入力データエラーとして扱うときに指定します。

入力データ長,列定義長,及びlengoverオペランドの関係を表5-17に示します。また,lengoverオペランドとほかのオプション,制御文を同時に指定する場合の留意事項を表5-18に示します。

表5-17 入力データ長,列定義長,及びlengoverオペランドの関係

入力データ長と列定義長の関係 lengover指定なし lengover指定あり
m=n 入力データをそのまま格納します。
m<n 入力データのm+1以降のデータは切り捨てて格納します。 入力データエラーとして扱います。
m>n

CHAR,NCHAR,及びMCHARの場合:
入力データのn+1以降に空白を埋めて格納します。

VARCHAR,NVARCHAR,MVARCHAR,及びBINARYの場合:
入力データをそのまま格納します。

表5-18 lengoverオペランドとほかのオプション,制御文を同時に指定する場合の留意事項

オプション及び制御文 lengoverオペランドと同時に指定する場合の留意事項
-a,-b lengoverオペランドはDAT形式の場合に有効なオペランドのため,同時に指定すると制御文エラーとなります。
上記以外のオプション 特にありません。
option文のcutdtmsgオペランド cutdtmsgオペランドを指定しなくてもKFPL31090-Eメッセージが出力されます。
option文のdataerrオペランド ロールバック対象の入力データエラーとして扱います。
extdat文 拡張DAT形式の入力データファイルでも有効となります。
source文のerrorオペランド KFPL31090-W/Eメッセージの出力回数が次のように変わります。

lengoverオペランド指定あり:
データ長不正を検知した最初の列だけメッセージを出力します。

lengoverオペランド指定なし:
データ長不正を検知したすべての列のメッセージを出力します。
source文のerrdataオペランド エラーデータファイルに該当データを出力します。
上記以外の制御文 特にありません。
(l) divermsg=off

分割格納条件を変更した表に対して,RDエリア単位にデータロードする場合,入力データ中にRDエリアの格納条件と一致しない行データがあると,エラーデータ情報を出力します。このエラーデータ情報の出力を抑止する場合,このオペランドを指定します。

このオペランドは,データロード対象表が横分割表で,かつRDエリア単位にデータロードする場合に有効となります。これ以外の条件でこのオペランドを指定した場合,指定は無視されます。

分割格納条件と一致しない行データがある場合の,divermsgオペランドと各項目との関係を次の表に示します。

表5-19 分割格納条件と一致しない行データがある場合の,divermsgオペランドと各項目との関係

項目 divermsgオペランド
指定あり 指定なし
pdloadのリターンコード 0 4
エラー情報ファイル KFPL31009-Eメッセージを出力しません。 KFPL31009-Eメッセージを出力します。
エラーデータファイル エラーデータを出力しません。 エラーデータを出力します。
-eオプション 無効 有効

注※
データ形式エラーがあった場合,リターンコードは4となります。
(m) srcendian={big|little}

エンディアンが異なるプラットフォーム間でpdrorg出力バイナリ形式ファイルを使用してデータを移行する場合,移行先で入力データファイルのエンディアンを指定し,移行先のエンディアンに変換します。移行元と移行先のプラットフォームのエンディアンが同じ場合は,このオペランドの指定は不要です。

big:入力データファイルのエンディアンはビッグエンディアンです。

little:入力データファイルのエンディアンはリトルエンディアンです。

移行元と移行先でエンディアンが異なる場合のオペランド指定を次の表に示します。

表5-20 移行元と移行先でエンディアンが異なる場合のオペランド指定

移行元 移行先
ビッグエンディアン リトルエンディアン
ビッグエンディアン ※1 srcendian=big
リトルエンディアン srcendian=little ※2

注※1
移行元と移行先でエンディアンが同じのため指定は不要です。ただし,srcendian=bigの指定は可能です。

注※2
移行元と移行先でエンディアンが同じのため指定は不要です。ただし,srcendian=littleの指定は可能です。

<規則>
  • エンディアンが異なるプラットフォーム間でデータを移行する場合,pdrorgが出力したバイナリ形式のファイルを入力とするため,srcendianオペランドを指定するときは,-Wと-bオプション,又は-Uオプションを指定する必要があります。-Wと-bオプションを両方指定しない場合,又は-Uオプションを指定しない場合,srcendianオペランドは指定できません。指定すると,KFPL25002-E又はKFPL24991-Eメッセージを出力してエラー終了します。
  • -b -W -wを指定した場合は,エンディアンの指定を無視し,入力ファイル中のエンディアンの設定に従います。

<注意事項>
srcendianオペランドの指定値を誤った場合,格納データは保証しません。次の現象が発生するおそれがあります。
  • 入力データエラー
  • プログラムの異常終了
  • データベースに不正な値を格納
(n) allspace=zero

固定長データ形式の入力データファイルを使用してデータロードする場合,数値データ型(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に格納します。
(o) whitespace={preserve|strip

XML型の列に対してXML文書をデータロードする場合に,XML文書に含まれる空白類の取り扱い方法を指定します。

preserve:すべての空白類を保持します。

strip:テキストノードに含まれる空白類に対して次の処理を行います(xml:space="preserve"属性を持つ要素の子孫のテキストノードは除きます)。
  • テキストノードの先頭及び末尾の空白類を除去する
  • 連続する空白類を一つの空白に置き換える
(p) seq_range={buff|順序番号取得単位|all

自動採番機能を使用してデータロードする場合,順序番号の取得方式を指定します。

buff
順序番号をバッファ単位取得方式で取得します。この方式は,入力バッファ上に読み込まれた行数分の順序番号を取得してからデータロードします。
入力バッファの大きさを変更する場合は,option文のfile_buff_sizeオペランドを指定します。
なお,DAT形式ファイル,又は拡張DAT形式ファイルの場合は入力バッファに読み込まれた行数が不定になるため,常に1行単位で順序番号を取得します。そのため,大量のデータロードをする場合にbuffを指定することはお勧めしません。

順序番号取得単位 〜<符号なし正数>((1〜2147483647))
順序番号を指定単位取得方式で取得します。この方式は,指定した行数分の順序番号を取得してからデータロードします。

all
順序番号を全数一括取得方式で取得します。

順序数生成子循環オプションにcycleを指定していない順序数生成子の場合,順序番号の範囲を超える値は取得できません。そのため,allを指定した場合は,順序番号が取得範囲を超えた時点でエラー終了します。また,all以外を指定した場合は,順序番号が取得範囲を超えて,指定した取得単位の順序番号を取得できなかったときにエラー終了します。

(q) file_buff_size=バッファ長

   〜<符号なし整数>((32〜512000)) (単位:KB)

このオペランドはseq_range=buffの場合に指定できます。入力バッファに入力データファイルのデータを読み込む場合に,使用する入力バッファ用のメモリサイズを指定します。

このオペランドを省略した場合は,システム定義のpd_utl_file_buff_sizeオペランドの指定値が有効となります。

(r) charset={utf-16be|utf-16le}

UTF-8の環境で定義した表に対して,UTF-16の入力データファイルでデータロードする場合,入力データファイルのエンディアンを指定します。このオペランドは,入力データファイルが次の形式の場合に指定できます。

utf-16be:エンディアンがビッグエンディアンの場合に指定します。

utf-16le:エンディアンがリトルエンディアンの場合に指定します。

このオペランドを省略した場合,入力データファイルの文字コードはUTF-8と判断してデータロードをします。

また,このオペランドを指定した場合,UTF-8の列へUTF-16のデータを格納するため,pdloadが文字コード変換をします。文字コード変換が発生するのは,CHAR,VARCHAR,MCHAR,及びMVARCHAR,並びに抽象データ型のCHAR,VARCHAR,MCHAR,及びMVARCHARです。変換前と変換後でデータ長が変わる場合,pdloadがデータ長を調整します。列のデータ型と変換後データ長の組み合わせによるデータ長の調整方法を次の表に示します。

表5-22 列のデータ型と変換後データ長の組み合わせによるデータ長の調整方法

列のデータ型 変換後データ長
変換後データ長≦列定義長 変換後データ長>列定義長
CHAR,及びMCHAR データを左詰めにし,足りない部分に空白を埋めて格納します。 データを左詰めにし,列定義長を超える部分を切り捨てて格納します。
VARCHAR,及びMVARCHAR 変換後データ長でデータを格納します。

注※
データの切り捨てが発生した場合,option文のlengoverオペランド,及びcutdtmsgオペランドの指定値によってその後の処理が変わります。lengoverオペランド及びcutdtmsgオペランドの指定値と,データの切り捨てが発生した場合の処理を次に示します。
lengoverオペランド cutdtmsgオペランド データの切り捨てが発生した場合の処理
省略 省略又はoff そのまま処理を続行します。
on エラー情報ファイルに警告メッセージを出力し,処理を続行します。
err 異常終了します。

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