5.4.7 lobdata文(LOB入力ファイルの情報の記述)
LOB列がある表へデータロードする場合,又はコンストラクタ関数への入力パラメタとしてLOBデータを入力する場合に,LOBの情報を指定します。
- <適用基準>
-
lobdata文は,LOB列がある表へデータロードする場合に指定してください(ただし,LOB列構成基表だけをデータロードするときには不要です)。
また,抽象データ型列がある表に対して,コンストラクタ関数へ入力パラメタとしてLOBデータを入力してデータロードする場合も,lobdata文を指定できます。
- <規則>
-
-
lobdata文は,-k f,c,又はvの場合に指定できます。
-
データロードでBLOB列を含む表に対しデータを挿入する場合は,次の2つの方法があります。
・BLOB列データとLOB列構成基表を1回のpdload実行で同時に挿入します。
この際,source文と,lobdata文の指定が必要です。
・BLOB列データとLOB列構成基表を2回のpdload実行で別々に挿入します。
この際,1回目のpdloadでは,source文とlobmid文を指定し,2回目のpdloadでは1回目に指定したlobmid文とlobdata文の指定が必要です。
なお,2回目のpdloadを実行しないで,UPDATE文を使ってBLOB列データを挿入することはできません。UPDATE文を使用してBLOB列データを挿入したい場合は,1回目のpdloadの入力データファイルのBLOB列にはナル値を挿入する指定をしてください。
-
LOB列及びLOBパラメタ(コンストラクタ関数の入力パラメタとしてのLOBデータ)ごとにLOB入力ファイルを用意する場合,入力データファイル中のLOB列に該当するデータ部にはファイル名を記述します。
しかし,そのファイル名を絶対パス名で記述すると,入力データファイルの容量が増大し,記述も面倒です。
LOB入力ファイルが,あるディレクトリ下にまとめて用意されている場合,ディレクトリ名はlobdata文に,ファイル名は入力データファイル中に記述することで,指定したディレクトリ名とファイル名を合わせて絶対パス名として認識できます。ただし,ディレクトリ名の指定は,入力データファイルにLOB入力ファイルのファイル名を記述する場合だけ有効で,入力データファイルにLOBデータを直接記述する場合は無視されます。
-
(1) 形式
lobdata 〔LOB入力ファイルのディレクトリ名〕
(2) 説明
(a) LOB入力ファイルのディレクトリ名
〜<パス名>
LOB入力ファイルがあるディレクトリ名を指定します。
LOB入力ファイルが一つのディレクトリ下にまとまっている場合に,そのディレクトリ名を絶対パス名で指定します。
ここで指定したパス名と,source文で指定した入力データファイル中のLOB列のファイル名称,又はlobcolumn文の列単位LOB入力ファイルの名称を合わせて,LOB入力ファイルの絶対パス名となるように指定してください。
- <注意事項>
-
-
作成した絶対パス名の長さは最大1,023バイトです。
-
source文で指定した入力データファイル中のLOB入力ファイルの名称,又はlobcolumn文の列単位LOB入力ファイルの名称を絶対パス名で指定している場合は,LOB入力ファイルのディレクトリ名は省略できます。
-
(3) 注意事項
LOB列,LOB属性の抽象データ型の列,及びlobdata文の有無によるデータロードの方法を次に示します。なお,LOB属性の抽象データ型としてSGMLTEXT型を例に説明します。
|
表定義 |
lobdata文の指定 |
||
|---|---|---|---|
|
あり |
なし |
||
|
LOB列あり |
SGMLTEXT型の列あり |
LOB列構成基表,SGMLTEXT型の列,及びLOB列へ同時にデータロードします。 |
LOB列構成基表,及びSGMLTEXT型の列へ同時にデータロードし,後からLOB列へデータロードします。 |
|
SGMLTEXT型の列なし |
LOB列構成基表,及びLOB列へ同時にデータロードします。 |
LOB列構成基表へ先にデータロードし,後からLOB列へデータロードします。 |
|
|
LOB列なし |
SGMLTEXT型の列あり |
抽象データ型列構成基表,及びSGMLTEXT型の列へ同時にデータロードします。 |
|
|
SGMLTEXT型の列なし |
エラーとなります。 |
LOB列なし,SGMLTEXT型の列なしでデータロードします。 |
|