5.11.2 UOCインタフェース
データべース作成ユティリティとUOC間の連絡は,インタフェース領域を使用して情報の入出力をします。
この領域はデータべース作成ユティリティが確保します。UOCは,関数の第1引数にこの領域のアドレスを受け取って参照,更新をします。
UOCインタフェース領域の構造を次の図に示します。また,UOCインタフェース領域の内容を表「UOCインタフェース領域の内容」に示します。
- (凡例)
-
32:32ビットモードのHiRDBの相対位置,及び長さを示します。
64:64ビットモードのHiRDBの相対位置,及び長さを示します。
- 注
-
内容の(1),(2)の意味を次に示します。
(1):pdloadが入力デ−タファイルを入力する場合
(2):UOCが入力デ−タファイルを入力する場合
- 注※1
-
-eオプション指定時は,エラーデータを検知するとUOCの処理も打ち切ります。また,pdloadが入力データファイルを入力する場合は次のようになります。
-
-rオプションが指定されている場合は,指定した行データまでは渡されません。
-
パーソナルコンピュータで作られたDAT形式ファイルなどで,改行記号(¥n)の前に復帰記号(¥r)があるデータは,復帰記号は削除された形で渡されます。
-
pdrorgが出力する-Wオプション指定のバイナリ形式の入力デ−タファイルの場合,LOB列及びBINARY列の編集はできません。
-
バイナリ形式の入力デ−タファイルを処理する場合,可変長文字列の長さが不正なデータは渡されません。
-
- 注※2
-
該当するデータを入力対象外にする場合に-1を設定します。
64ビットモードのHiRDBの場合,処理上有効なデータ長の最大値は2ギガ−1バイトです。
- 注※3
-
入力バッファアドレスのフィールドを指す領域を,入力バッファと呼びます。入力バッファはpdloadが入力デ−タファイルを読み込む場合に,pdloadが確保します。入力バッファには,pdloadが入力したデータが1行ごとに格納されます。入力バッファの形式は次のようになります。
- ・DAT形式の入力デ−タファイルの場合
-
テキストデータを改行記号まで読み込んだものが,そのまま格納されます。末尾は改行記号(¥n)+ナル文字(¥0)となります。最後尾のナル文字以降を参照,更新しないでください。
- ・拡張DAT形式の入力デ−タファイルの場合
-
囲み文字で囲まれていないナル文字又は改行記号までのテキストデータを読み込んだものが,そのまま格納されます。格納されたデータの長さは入力データ長に設定されます。入力データ長に設定された長さ以上の領域を参照,更新しないでください。
- ・バイナリ形式の入力デ−タファイルの場合
-
表定義から計算した行長分のデータが格納されます。格納されたデータの長さは入力データ長に設定されます。入力データ長に設定された長さ以上の領域を参照,更新しないでください。
- ・pdrorgが出力した入力デ−タファイルの場合
-
入力データ長には,FIX表の場合はデータ部だけの長さ,非FIX表の場合はオフセット部とデータ部の合計値が設定されます。入力データ長に設定された長さ以上の領域を参照,更新しないでください。なお,LOB列及びBINARY列はUOCでは扱えないため,LOB列及びBINARY列がある表は,pdrorgのUOCで編集してください。
- ・固定長データ形式の入力データファイルの場合
-
列構成情報ファイルに指定した列情報から計算された,行長分のデータが格納されます。したがって,テキストファイルの場合は,改行記号(¥n)及び復帰記号(¥r)が付いたままの形となります。
- 注※4
-
編集バッファアドレスのフィールドを指す領域を,編集バッファと呼びます。編集バッファはUOCが確保します。ただし,pdloadが入力デ−タファイルを読み込む場合,設定されたデータ長を超えて入力バッファの更新をしないときには,入力バッファをそのまま編集バッファとして利用できます。バイナリ形式の場合,編集データ長のフィールドにデータの長さを設定して,編集バッファの何バイト目までがデータなのかを指定します。DAT形式の場合,長さを設定する必要はありませんが,編集バッファのデータの末尾は改行記号(¥n)+ナル文字(¥0)とします。
- 注※5
-
バイナリ形式及び拡張DAT形式の入力データファイルの場合,編集バッファに用意したデータの長さを指定してください。
拡張DAT形式の入力データファイルの場合,編集したデータの長さがsource文のmaxreclenオペランドの指定値を超えないようにしてください。そのほかの形式の入力データファイルの場合,初期値の0にしてください。