データを DB2® 表にロードします。
サーバー上に保管するデータは、ファイル、テープ、 または名前付きパイプの形式にすることができます。 リモートに接続されたクライアント上に保管するデータは、 完全修飾ファイルまたは名前付きパイプの形式にすることができます。 また、データは、ユーザー定義カーソルから、あるいはユーザー作成のスクリプトまたはアプリケーションを使用してロードできます。表の COMPRESS 属性が YES に設定されている場合、ロードされるデータは、表内にディクショナリーが存在するデータおよびデータベース・パーティションごとに圧縮の対象となります。これには表の XML ストレージ・オブジェクト内のデータが含まれます。
ロード・ユーティリティー用のファイル・タイプ修飾子へのクイック・リンク。
ロード・ユーティリティーでは、階層レベルのデータのロードはサポートされていません。 ロード・ユーティリティーには、範囲がクラスター化された表との互換性はありません。 ロード・ユーティリティーでは、NOT LOGGED INITIALLY パラメーターを CREATE TABLE や ALTER TABLE ステートメントでサポートしていません。
このコマンドは、一度の要求で複数のデータベース・パーティションに対して発行できます。
保護行がある表にデータをロードする場合、ターゲット表にはデータ・タイプ DB2SECURITYLABEL の列が 1 つあります。 入力データ行にその列の値が含まれていない場合、その行はリジェクトされます。ただし、LOAD コマンドで usedefaults ファイル・タイプ修飾子が指定されている場合は例外です。その場合には、その表を保護するセキュリティー・ポリシーの書き込みアクセス用のセキュリティー・ラベルが使用されます。 書き込みアクセス用のセキュリティー・ラベルがない場合、その行はリジェクトされ、次の行に処理が続行されます。
すべてのロード・プロセス (および一般にすべての DB2 サーバー・プロセス) はインスタンス所有者によって所有されており、それらのプロセスすべてにおいて、必要なファイルにアクセスするためにそのインスタンス所有者の ID を使用するため、 インスタンス所有者には入力データ・ファイルに対する読み取りアクセス権が必要です。 このコマンドをだれが呼び出すかには関係なく、 それらの入力データ・ファイルをインスタンス所有者から読むことができなければなりません。
データベース。 暗黙接続が可能な場合には、デフォルト・データベースへの接続が確立されます。
インスタンス。 明示的なアタッチは必要ありません。 データベースへの接続が確立されている場合には、 ローカル・インスタンスへの暗黙的な接続が試みられます。
.-,--------------. V | >>-LOAD--+--------+--FROM----+-filename---+-+--OF--filetype-----> '-CLIENT-' +-pipename---+ +-device-----+ '-cursorname-' >--+-------------------------+--+------------------------+------> | .-,--------. | | .-,--------. | | V | | | V | | '-LOBS FROM----lob-path-+-' '-XML FROM----xml-path-+-' >--+--------------------------------+---------------------------> | .---------------. | | V | | '-MODIFIED BY----file-type-mod-+-' >--+-------------------------------------------------------------------------------------------------+--> | .-,------------------. | | V | | '-METHOD--+-L--(----col-start--col-end-+--)--+------------------------------------------------+-+-' | | .-,-------------------. | | | | V | | | | '-NULL INDICATORS--(----null-indicator-list-+--)-' | | .-,--------. | | V | | +-N--(----col-name-+--)---------------------------------------------------------------+ | .-,------------. | | V | | '-P--(----col-position-+--)-----------------------------------------------------------' >--+------------------------------------+-----------------------> '-XMLPARSE--+-STRIP----+--WHITESPACE-' '-PRESERVE-' >--+--------------------------------------------------------------------------------------+--> '-XMLVALIDATE USING--+-XDS--+-----------------------+--| Ignore and Map parameters |-+-' | '-DEFAULT--schema-sqlid-' | +-SCHEMA--schema-sqlid------------------------------------------+ '-SCHEMALOCATION HINTS------------------------------------------' >--+--------------+--+-------------+--+-----------------+-------> '-SAVECOUNT--n-' '-ROWCOUNT--n-' '-WARNINGCOUNT--n-' >--+------------------------+-----------------------------------> '-MESSAGES--message-file-' >--+-------------------------------+----------------------------> '-TEMPFILES PATH--temp-pathname-' >--+-INSERT-----------------------+-----------------------------> | .-KEEPDICTIONARY--. | +-REPLACE--+-----------------+-+ | '-RESETDICTIONARY-' | +-RESTART----------------------+ '-TERMINATE--------------------' >--INTO--table-name--+-------------------------+----------------> | .-,-------------. | | V | | '-(----insert-column-+--)-' >--+----------------------------------------------------------+--> | .-,-------------------------. | | V (1) (2) | | '-FOR EXCEPTION--table-name--------------+-------------+-+-' +-NORANGEEXC--+ '-NOUNIQUEEXC-' >--+-----------------------------+------------------------------> '-STATISTICS--+-USE PROFILE-+-' '-NO----------' >--+-----------------------------------------------------------------+--> | .-NO----------------------------------------------------. | +-COPY--+-YES--+-USE TSM--+--------------------------+--------+-+-+ | | '-OPEN--num-sess--SESSIONS-' | | | | .-,----------------. | | | | V | | | | +-TO----device/directory-+---------------------+ | | '-LOAD--lib-name--+--------------------------+-' | | '-OPEN--num-sess--SESSIONS-' | '-NONRECOVERABLE--------------------------------------------------' >--+-------------------+--+--------------------------+----------> '-WITHOUT PROMPTING-' '-DATA BUFFER--buffer-size-' >--+--------------------------+--+--------------------+---------> '-SORT BUFFER--buffer-size-' '-CPU_PARALLELISM--n-' >--+---------------------+--------------------------------------> '-DISK_PARALLELISM--n-' >--+--------------------------------+---------------------------> '-INDEXING MODE--+-AUTOSELECT--+-' +-REBUILD-----+ +-INCREMENTAL-+ '-DEFERRED----' .-ALLOW NO ACCESS-----------------------------. >--+---------------------------------------------+--------------> '-ALLOW READ ACCESS--+----------------------+-' '-USE--tablespace-name-' >--+----------------------------+-------------------------------> | .-YES-. | '-FETCH_PARALLELISM--+-NO--+-' >--+----------------------------------------------+-------------> '-SET INTEGRITY PENDING CASCADE--+-IMMEDIATE-+-' '-DEFERRED--' >--+-----------------+------------------------------------------> '-LOCK WITH FORCE-' >--+-----------------------------------------------------------------------------------+--> '-SOURCEUSEREXIT--executable--| Redirect Input/Output parameters |--+-------------+-' '-PARALLELIZE-' >--+------------------------------------------------------+---->< | .-----------------------. | | .-PARTITIONED DB CONFIG-. V | | '-+-----------------------+----partitioned-db-option-+-' Ignore and Map parameters |--+--------------------------------+---------------------------> | .-,------------. | | V | | '-IGNORE--(----schema-sqlid-+--)-' >--+----------------------------------------------------+-------| | .-,-----------------------------------. | | V | | '-MAP--(----(--schema-sqlid--,--schema-sqlid--)-+--)-' Redirect Input/Output parameters |--+-------------------------------------------------------------------------------------+--| '-REDIRECT--+-INPUT FROM--+-BUFFER--input-buffer-+--+-----------------------------+-+-' | '-FILE--input-file-----' '-OUTPUT TO FILE--output-file-' | '-OUTPUT TO FILE--output-file-------------------------------------------'
db2 load client from /u/user/data.del of del
modified by codepage=850 insert into mytable
CURSOR ファイル・タイプと併せて指定された場合、このオプションは無視されます。
NULL 標識列中の Y の値は、その列データが NULL であることを指定します。 NULL 標識列に Y 以外 の文字を指定した場合は、列データが NULL ではなく、METHOD L オプションで指定された列データがロードされることを指定することになります。
NULL 標識文字は、MODIFIED BY オプションを使用して変更できます。
db2 import from datafile1.del of del method P(1, 3, 4)
replace into table1 (c1, c3, c4)
DEFAULT、IGNORE、および MAP 節を使用することにより、スキーマ決定の動作を変更することができます。 これら 3 つの節はオプションであり、相互に適用されるのではなく XDS の指定に直接適用されます。 例えば、DEFAULT 節で指定されているためにあるスキーマが選択された場合、それが IGNORE 節で指定されていたとしても無視されることはありません。 同じように、MAP 節のペアの最初の部分で指定されているためにあるスキーマが選択された場合、それが別の MAP 節のペアの 2 番目の部分で指定されていたとしても再びマップされることはありません。
あるスキーマが IGNORE 節の中で指定されている場合、MAP 節のスキーマ・ペアの左辺にそれを含めることはできません。
IGNORE 節は XDS にのみ適用されます。 あるスキーマが IGNORE 節によって指定されていても、それが MAP 節によってマップされているなら、それ以降そのスキーマが無視されることはありません。
DEFAULT 節は、IGNORE 節および MAP 節よりも優先されます。 XDS が DEFAULT 節を満たすなら、IGNORE と MAP の指定は無視されます。
あるスキーマが MAP 節のスキーマ・ペアの左辺で指定されている場合、IGNORE 節でさらにそれを指定することはできません。
スキーマ・ペアのマッピングが適用されたなら、その結果は最終的なものです。 マッピング操作は推移的ではないため、選択されたスキーマが、それ以降に別のスキーマ・ペアのマッピングに適用されることはありません。
スキーマを複数回マップすることはできません。 つまり、複数のペアの左辺に指定することはできません。
デフォルト値はゼロですが、それは、必要がなければ整合点は確立されないことを意味します。
CURSOR ファイル・タイプと併せて指定された場合、または XML 列を含む表をロードする場合、このオプションは使用できません。
通常、メッセージ・ファイルには、ロード操作の終了時にメッセージが入れられますが、 それ自体は操作の進行状況のモニターには適していません。
このオプションは、システム期間テンポラル表へのデータのロードには使用できません。
| 圧縮 | 表の行データ・ディクショナリーが存在する | XML ストレージ・オブジェクト・ディクショナリーが存在する1 | コンプレッション・ディクショナリー | データ圧縮 |
|---|---|---|---|---|
| YES | YES | YES | 表の行データ・ディクショナリーおよび XML ディクショナリーを保存します。 | ロードされるデータは圧縮の対象になります。 |
| YES | YES | NO | 表の行データ・ディクショナリーを保存し、新規 XML ディクショナリーを作成します。 | ロードされる表の行データは圧縮の対象になります。 XML ディクショナリーが作成された後に、ロードされる残りの XML データは圧縮の対象になります。 |
| YES | NO | YES | 表の行データ・ディクショナリーを作成し、XML ディクショナリーを保存します。 | 表の行データ・ディクショナリーが作成された後に、ロードされる残りの表の行データは圧縮の対象になります。 ロードされる XML データは圧縮の対象になります。 |
| YES | NO | NO | 新規の表の行データおよび XML ディクショナリーを作成します。 | ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。 |
| NO | YES | YES | 表の行データ・ディクショナリーおよび XML ディクショナリーを保存します。 | ロードされるデータは、圧縮されません。 |
| NO | YES | NO | 表の行データ・ディクショナリーを保存します。 | ロードされるデータは、圧縮されません。 |
| NO | NO | YES | 表の行ディクショナリーには影響はありません。 XML ディクショナリーを保存します。 | ロードされるデータは、圧縮されません。 |
| NO | NO | NO | 影響なし。 | ロードされるデータは、圧縮されません。 |
| 圧縮 | 表の行データ・ディクショナリーが存在する | XML ストレージ・オブジェクト・ディクショナリーが存在する1 | コンプレッション・ディクショナリー | データ圧縮 |
|---|---|---|---|---|
| YES | YES | YES | 新規ディクショナリーの作成2。 DATA CAPTURE CHANGES オプションが CREATE TABLE または ALTER TABLE ステートメントで有効になっていると、現在の表の行データ・ディクショナリーが保持されます (これは履歴コンプレッション・ディクショナリー と呼ばれます)。 | ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。 |
| YES | YES | NO | 新規ディクショナリーの作成2。 DATA CAPTURE CHANGES オプションが CREATE TABLE または ALTER TABLE ステートメントで有効になっていると、現在の表の行データ・ディクショナリーが保持されます (これは履歴コンプレッション・ディクショナリー と呼ばれます)。 | ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。 |
| YES | NO | YES | 新規ディクショナリーの作成。 | ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。 |
| YES | NO | NO | 新規ディクショナリーの作成。 | ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。 |
| NO | YES | YES | ディクショナリーを除去します。 | ロードされるデータは、圧縮されません。 |
| NO | YES | NO | 表の行データ・ディクショナリーを除去します。 | ロードされるデータは、圧縮されません。 |
| NO | NO | YES | XML ストレージ・オブジェクト・ディクショナリーを除去します。 | ロードされるデータは、圧縮されません。 |
| NO | NO | NO | 影響なし。 | すべての表データが圧縮されるわけではありません。 |
LOAD TERMINATE オプションでは、表スペースの BACKUP PENDING 状態は解除されません。
db2 load from delfile1 of del
insert into table1 (c1, c2, c3,...)
db2 load from delfile1 of del modified by implicitlyhiddeninclude
insert into table1
db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
db2 load from delfile1 of del insert into table1
db2 load from delfile1 of del noheader
method P (1, 2, 3, 4, 5, 6, 7, 8, 9)
insert into table1 (BLOB1, S2, I3, Int 4, I5, I6, DT7, I8, TM9)
db2 load from delfile1 of del noheader
method P (1, 2, 3, 4, 5, 6, 7, 8, 9)
insert into table1 (BLOB1, S2, I3, "Int 4", I5, I6, DT7, I8, TM9)
例外表に書き込まれる情報は、 ダンプ・ファイルには書き込まれません 。 パーティション・データベース環境では、 ロードする表を定義されたデータベース・パーティションの例外表を定義する必要があります。 一方、ダンプ・ファイルには、無効であるか構文エラーであるためにロードできない行が入ります。
ロードの際に、分散統計はタイプ XML の列については収集されません。
リカバリー可能データベースでの COPY NO を指定した LOAD は、表スペースを BACKUP PENDING 状態のままにします。 例えば、COPY NO を指定した LOAD および INDEXING MODE DEFERRED を実行すると、 索引はリフレッシュが必要な状態になります。 表での照会には、索引スキャンが必要なものがあり、 索引がリフレッシュされるまで、成功しません。索引が、バックアップ・ペンディング状態にある表スペース内にある場合、その索引のリフレッシュはできません。 この場合、表へのアクセスは、バックアップが行われるまで許可されません。 索引リフレッシュは、索引が照会によってアクセスされたときに、 データベースによって自動的に行われます。COPY NO、COPY YES、NONRECOVERABLE のいずれも指定されておらず、データベースがリカバリー可能である場合 (logarchmeth1 または logarchmeth2 に OFF 以外の値が設定されている場合)、COPY NO がデフォルトです。
このオプションを使用すると、 表スペースはロード操作後に BACKUP PENDING 状態になりません。 また、ロード操作中にロードされたデータのコピーが作成される必要もなくなります。 COPY NO、COPY YES、NONRECOVERABLE のいずれも指定されておらず、データベースがリカバリー可能ではない場合 (logarchmeth1 および logarchmeth2 の両方に OFF が設定されている場合)、NONRECOVERABLE がデフォルトです。
このオプションを指定しない場合に、 テープ装置がコピー・イメージ用のテープの終わりに達した場合、 またはリスト中の最後の項目がテープ装置であった場合は、 ユーザーに対してその装置に新しいテープを装着するよう求めるプロンプトが出されます。
このメモリーは、ユーティリティー・ヒープから直接に割り当てられ、 そのサイズは util_heap_sz データベース構成パラメーターで修正可能です。 バージョン 9.5 以降では、システムにさらに使用可能なメモリーがある場合、LOAD コマンドの DATA BUFFER オプションの値は、一時的に util_heap_sz を超えることができます。この場合、ユーティリティー・ヒープは、必要に応じて database_memory 限度に達するまで動的に増加します。このメモリーは、ロード操作が完了すると解放されます。
値が指定されていない場合、実行時にユーティリティーによって適切なデフォルトが計算されます。デフォルトは、ローダーのインスタンス生成時にユーティリティー・ヒープで使用できるフリー・スペースの割合と、表の一部の特性に基づいて決まります。
LogIndexBuild データベース構成パラメーターがオンになっている場合、トランザクション・ログには、各索引ページの作成後にそのページのイメージが含まれます。 LogIndexBuild データベース構成パラメーターがオフになっている場合、索引マネージャーがログに記録するのは、各ページの割り振りと初期化のみです (各ページの空ではない部分とは異なり、ページ当たり約 250 バイト)。
LogIndexBuild データベース構成パラメーターがオンになっている場合、DB2 ソフトウェアは、実行されたページ分割のほか、索引への各キーの挿入に関してもログ・レコードを生成します。 このパラメーターがオフになっている場合 (HADR を使用していない場合に一般的)、索引マネージャーによって実行される索引ロギングの量は、ALLOW READ ACCESS オプションが指定されたかどうかに応じて異なります。 ALLOW READ ACCESS オプションが指定されている場合、ページ分割に関するログを含んだログ・レコードが生成されます。 ALLOW READ ACCESS オプションが指定されていない場合、索引マネージャーからのログ・レコードは生成されません。
据え置き索引作成がサポートされるのは、非ユニーク索引がある表だけです。そのため、 ロード・フェーズで挿入される重複キーがロード操作後は永続的ではなくなります。
表に制約があると、表の状態は、 ロード中の他に、SET INTEGRITY ペンディングに設定されます。 表の SET INTEGRITY ペンディング状態を解除するには、SET INTEGRITY ステートメントを使用する必要があります。
ALLOW READ ACCESS ロードの LOAD TERMINATE および LOAD RESTART はこのパラメーターを使用できますが、ALLOW NO ACCESS ロードの LOAD TERMINATE および LOAD RESTART はこのパラメーターを使用できません。 また、ターゲット表上の索引が要再作成のマークが付けられると、 このオプションは無効になります。
表に制約があると、表の状態は、LOAD IN PROGRESS、および READ ACCESS の他に、SET INTEGRITY PENDING に設定されます。 ロードの終了時に、表の状態 LOAD IN PROGRESS は解除されますが、SET INTEGRITY PENDING および READ ACCESS はそのまま残ります。 表の SET INTEGRITY PENDING を解除するには、SET INTEGRITY ステートメントを使用する必要があります。 表が SET INTEGRITY PENDING および READ ACCESS の状態にある間、 データの非デルタ部分には引き続き読み取りアクセスできますが、データの新しい (デルタ) 部分には、 SET INTEGRITY ステートメントが完了するまでアクセス不能のままになります。 ユーザーは、SET INTEGRITY ステートメントを発行しないで、同じ表上で複数のロードを実行できます。 ただし、元の (チェック済み) データは、 SET INTEGRITY ステートメントが発行されるまで可視のままです。
このオプションを使用しないと、シャドー索引は元の索引と同じ表スペースに作成されます。 デフォルトでは、元の索引とシャドー索引の両方が同時に同じ表スペースに常駐するため、 1 つの表スペース内に両方の索引を保持するためのスペースが不足する場合があります。 このオプションを使用すれば、索引用の十分な表スペースを保持できます。
ユーザーが INDEXING MODE REBUILD または INDEXING MODE AUTOSELECT を指定しない場合、 このオプションは無視されます。 このオプションは INDEXING MODE AUTOSELECT が選択され、 ロードが索引を徐々に更新することを選択した場合にも無視されます。
後で (SET INTEGRITY ステートメントの IMMEDIATE CHECKED オプションを使用して) ロードされる表の制約違反をチェックする際、SET INTEGRITY PENDING READ ACCESS 状態だった下層外部キー表は、SET INTEGRITY PENDING NO ACCESS 状態になります。
下層外部キー表は、(SET INTEGRITY ステートメントの IMMEDIATE CHECKED オプションを使用して) その親表の制約違反がチェックされるとき、後で暗黙的に SET INTEGRITY PENDING 状態になる場合があります。 下層即時マテリアライズ照会表および下層即時ステージング表は、 その基礎表のいずれかの保全性違反がチェックされる際、 暗黙的に SET INTEGRITY PENDING 状態になります。 照会のアクセス先が、指定された表ではなく、SET INTEGRITY PENDING 状態にない適格なマテリアライズ照会表である場合は、SET INTEGRITY PENDING 状態の表の照会が成功することがあります。 下層表が SET INTEGRITY ペンディング状態になったことを示す警告 (SQLSTATE 01586) が出されます。この下層表がいつ SET INTEGRITY PENDING 状態になるかについては、 SQL リファレンスにある SET INTEGRITY ステートメントの「注」の項を参照してください。
SET INTEGRITY PENDING CASCADE オプションが指定されない場合、次のようになります。
LOAD によってターゲット表が SET INTEGRITY PENDING 状態にならない場合、SET INTEGRITY PENDING CASCADE オプションは無視されます。
ALLOW NO ACCESS ロードは、ロード操作の開始時に競合するロックを持つアプリケーションを強制的にロールバックさせる場合があります。 ロードの開始時に、ユーティリティーは、 表の照会または変更を試みているアプリケーションを強制的にロールバックさせる場合があります。
ALLOW READ ACCESS ロードは、ロード操作の開始時および終了時に競合するロックを持つアプリケーションを強制的にロールバックさせる場合があります。 ロードの開始時に、ロード・ユーティリティーは、 表の変更を試みているアプリケーションを強制的にロールバックさせる場合があります。 ロード操作の終了時に、ロード・ユーティリティーは、 表の照会または変更を試みているアプリケーションを強制的にロールバックさせる場合があります。
PART_FILE_LOCATION x
OUTPUT_DBPARTNUMS x
PARTITIONING_DBPARTNUMS x
MODE x
MAX_NUM_PART_AGENTS x
ISOLATE_PART_ERRS x
STATUS_INTERVAL x
PORT_RANGE x
CHECK_TRUNCATION
MAP_FILE_INPUT x
MAP_FILE_OUTPUT x
TRACE x
NEWLINE
DISTFILE x
OMIT_HEADER
RUN_STAT_DBPARTNUM x
これらのオプションの詳しい説明は、『パーティション・データベース環境のロード構成オプション』で扱われています。例 1
1...5....10....15....20....25....30....35....40
Test data 1 XXN 123abcdN
Test data 2 and 3 QQY wxyzN
Test data 4,5 and 6 WWN6789 Y
db2 load from ascfile1 of asc modified by striptblanks reclen=40
method L (1 20, 21 22, 24 27, 28 31)
null indicators (0,0,23,32)
insert into table1 (col1, col5, col2, col3)
例 2 (ファイルから LOB をロードする)
1...5....10...15...20...25...30.
REC1 ASCFILE2 ASCFILE3
REC2 ASCFILE4 ASCFILE5
REC3 ASCFILE6 ASCFILE7
db2 load from ascfile1 of asc
lobs from /u/user1, /u/user1/bin
modified by lobsinfile reclen=22
method L (1 4, 6 13, 15 22)
insert into table1
例 3 (ダンプ・ファイルの使用)
table friends "( c1 INT NOT NULL, c2 INT, c3 CHAR(8) )"
23, 24, bobby
, 45, john
4,, mary
最初の INT が NULL で、列定義に NOT NULL が指定されているため、第 2 行はリジェクトされます。 DEL フォーマットと互換でない開始文字の入った列は、エラーを生成し、 レコードはリジェクトされます。 そのようなレコードは、ダンプ・ファイルに書き込むことができます。
22,34,"bob"
24,55,"sam" sdf
22 3, 34,"bob"
ユーティリティーは 22,34,"bob" をロードし、列 1 の 22 の後にある一部のデータが無視されたという警告を生成します。 このレコードはリジェクトされません。
例 4 (ID 列がある表へのロード)
TABLE2 は TABLE1 と同じですが、C2 が GENERATED ALWAYS ID 列である点が異なります。
"Liszt"
"Hummel",,187.43, H
"Grieg",100, 66.34, G
"Satie",101, 818.23, I
"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I
db2 load from datafile1.del of del replace into table1
db2 load from datafile1.del of del method P(1, 3, 4)
replace into table1 (c1, c3, c4)
db2 load from datafile1.del of del modified by identityignore
replace into table1
db2 load from datafile2.del of del replace into table1 (c1, c3, c4)
db2 load from datafile2.del of del modified by identitymissing
replace into table1
db2 load from datafile1.del of del modified by identityoverride
replace into table2
この場合、ユーティリティーには、ユーザー提供の値を優先して、
システム生成の ID 値に上書きするように指示しているため、
行 1 および 2 はリジェクトされます。
ユーザー提供の値が存在しない場合でも、
ID 列が暗黙的に非 NULL であるため、この行はリジェクトする必要があります。例 5 (ROW CHANGE TIMESTAMP 列がある表へのロード)
TABLE1 には以下の 4 つの列があります。
TABLE2 は TABLE1 と同じですが、C2 が GENERATED ALWAYS 列である点が異なります。
DATAFILE1 のデータ・レコード (DEL フォーマット):
"Liszt"
"Hummel",,187.43, H
"Grieg", 2006-05-23-15.55.53.209971, 66.34, G
"Satie", 2006-05-22-19.34.14.947681, 818.23, I
DATAFILE2 のデータ・レコード (DEL フォーマット):
"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I
db2 load from datafile1.del of del replace
into table1
db2 load from datafile1.del of del method P(1, 3, 4) replace into table1
(c1, c3, c4)
db2 load from datafile1.del of del modified by rowchangetimestampignore
replace into table1
db2 load from datafile2.del of del replace into table1 (c1, c3, c4)
db2 load from datafile2.del of del modified by rowchangetimestampmissing
replace into table1
db2 load from datafile1.del of del modified by rowchangetimestampoverride
replace into table2
この場合、ユーティリティーには、ユーザー提供の値を優先して、 システム生成の ROW CHANGE TIMESTAMP 値に上書きするように指示しているため、行 1 および 2 はリジェクトされます。 ユーザー提供の値が存在しない場合でも、ROW CHANGE TIMESTAMP 列が暗黙的に非 NULL であるため、この行はリジェクトする必要があります。
例 6 (CURSOR ファイル・タイプを使用したロード)
ONE INT
TWO CHAR(10)
THREE DATE
表 ABC.TABLE2 には次の 3 つの列があります。
ONE VARCHAR
TWO INT
THREE DATE
以下のコマンドを実行すると、
すべてのデータが ABC.TABLE1 から ABC.TABLE2 にロードされます。
db2 declare mycurs cursor for select two,one,three from abc.table1
db2 load from mycurs of cursor insert into abc.table2
ABC.TABLE1 が、ABC.TABLE2 のあるデータベースとは異なるデータベースにある場合、DECLARE CURSOR ステートメントの DATABASE、USER、および USING オプションを使用してロードを実行することができます。例えば、ABC.TABLE1 がデータベース DB1 にあり、DB1 のユーザー ID およびパスワードが user1 および pwd1 である場合、以下のコマンドを実行すると、すべてのデータが ABC.TABLE1 から ABC.TABLE2 にロードされます。
db2 declare mycurs cursor database DB1 user user1 using pwd1
for select two,one,three from abc.table1
db2 load from mycurs of cursor insert into abc.table2
ユーザーは、表に挿入される文書を記述するために、XDS フィールドを持つデータ・ファイルを構成しました。 内容は以下のとおりです。
1, "<XDS FIL=""file1.xml"" />"
2, "<XDS FIL='file2.xml' OFF='23' LEN='45' />"
最初の行では、XML 文書は file1.xml というファイルで示されます。 区切り文字は二重引用符であり、二重引用符は XDS の内側にあるため、XDS 内にある二重引用符は二重になります。 2 番目の行では、XML 文書は file2.xml というファイルで示され、バイト・オフセット 23 で始まります。長さは 45 バイトです。
LOAD
FROM data.del of DEL INSERT INTO mytable
データをカーソルからロードすることは、正規のリレーショナル列タイプを使用する場合と同じです。 ユーザーは 2 つの表、T1 および T2 を持っており、それぞれは C1 という単一の XML 列で構成されます。 T1 から T2 にロードするには、ユーザーは最初に次のようにカーソルを宣言します。
DECLARE
X1 CURSOR FOR SELECT C1 FROM T1;
その後、ユーザーは次のようにカーソル・タイプを使用して LOAD を発行できます。
LOAD FROM X1 of
CURSOR INSERT INTO T2
カーソル・タイプに XML 固有の LOAD オプションを適用する操作は、ファイルからロードする場合と同じです。
XMLVALIDATE USING XDS
例 1
USING XDS DEFAULT schema-sqlid
ユーザーは、XDS で示されたスキーマに従って妥当性検査を行いたいと思います。 SCH 属性を指定しない XDS 値がある場合、それらの文書はこの節で使用されるスキーマによって妥当性検査されます。
XMLVALIDATE
USING XDS DEFAULT S1.SCHEMA_B
例 2
ユーザーは妥当性検査を行いたいと思いますが、XDS で言及されている特定のスキーマは無視します。
XMLVALIDATE USING XDS IGNORE S1.SCHEMA_C
例 3
ユーザーは妥当性検査を行いたいと思いますが、XDS 内のいくつかのスキーマを再マップします。
XMLVALIDATE USING XDS MAP( (S1.SCHEMA_A,
S2.SCHEMA_B ), (S3.SCHEMA_C, S5.SCHEMA_E) )
上述の XDS の場合、SCH 属性が S1.SCHEMA_A である文書は、S2.SCHEMA_B に対して妥当性検査されます。 また、SCH 属性が S3.SCHEMA_C である文書は、S5.SCHEMA_E に対して妥当性検査されます。
例 4
ユーザーは、DEFAULT、IGNORE、MAP の各オプションを組み合わせて使用します。
XMLVALIDATE USING XDS
DEFAULT S8.SCHEMA_H
IGNORE (S9.SCHEMA_I, S10.SCHEMA_J)
MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S3.SCHEMA_C, S5.SCHEMA_E),
(S6.SCHEMA_F, S3.SCHEMA_C), (S4.SCHEMA_D, S7.SCHEMA_G))
<XDS FIL='xmlfile.001.xml' />
使用するデフォルト・スキーマとして "S8.SCHEMA_H" が指定されているため、ファイル xmlfile.001.xml に含まれる文書は、SQL ID が "S8.SCHEMA_H" である XML スキーマを使用して妥当性検査されます。<XDS FIL='xmlfile.002.xml' OFF='10' LEN='500' SCH='S10.SCHEMA_J' />
使用するスキーマとして XDS で指定されているのは "S10.SCHEMA_J" ですが、このスキーマは IGNORE 節に含まれているため、ファイル xmlfile.002.xml に含まれる文書のスキーマ妥当性検査は実行されません。
文書の内容はファイル中のバイト・オフセット 10 (11 番目のバイト) にあり、その長さは 500 バイトです。<XDS FIL='xmlfile.003.xml' SCH='S6.SCHEMA_F' />
ファイル xmlfile.003.xml に含まれる文書は、SQL ID が "S3.SCHEMA_C" である XML スキーマを使用して妥当性検査されます。
これは、MAP 節でスキーマ "S6.SCHEMA_F" をスキーマ "S3.SCHEMA_C" にマップすることが指定されているためです。
それ以外のマッピングは実行されないため、この場合、スキーマ "S3.SCHEMA_C" からスキーマ "S5.SCHEMA_E" へのマッピングは適用されないことに注意してください。<XDS FIL='xmlfile.004.xml' SCH='S11.SCHEMA_K' />
ファイル xmlfile.004.xml に含まれる文書は、SQL ID が "S11.SCHEMA_" である XML スキーマを使用して妥当性検査されます。
この場合、DEFAULT、IGNORE、 または MAP の指定のいずれも適用されないことに注意してください。XMLVALIDATE USING SCHEMA
XMLVALIDATE USING SCHEMA S2.SCHEMA_B
<XDS FIL='xmlfile.001.xml' />
ファイル xmlfile.001.xml に含まれる文書は、SQL ID が "S2.SCHEMA_B" の XML スキーマを使用して妥当性検査されます。<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
ファイル xmlfile.002.xml 内の文書は、"S2.SCHEMA_B" という SQL ID の XML スキーマを使用して妥当性検査されます。
妥当性検査は USING SCHEMA 節で指定されたスキーマを使用して実行されるため、SCH 属性は無視されることに注意してください。XMLVALIDATE USING SCHEMALOCATION HINTS
ユーザーは、文書そのものの中にあるスキーマ情報に従って妥当性検査を行いたいと思います。 以下の XMLVALIDATE 節の場合、
XMLVALIDATE
USING SCHEMALOCATION HINTS
<XDS FIL='xmlfile.001.xml' />
使用される XML スキーマは、文書の内容として含まれる schemaLocation 属性によって決まります。
その属性が指定されていない場合、妥当性検査は実行されません。<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
使用される XML スキーマは、文書の内容として含まれる schemaLocation 属性によって決まります。
その属性が指定されていない場合、妥当性検査は実行されません。
妥当性検査は SCHEMALOCATION
HINTS を使用して実行されるため、SCH 属性は無視されることに注意してください。次の図表は、TERMINATE ディレクティブの下での LOAD 処理に関するコンプレッション・ディクショナリー管理の動作を要約しています。
| 表の COMPRESS 属性 | LOAD 前に表の行データ・ディクショナリーが存在したかどうか | LOAD 前に XML ストレージ・オブジェクト・ディクショナリーが存在する1 | TERMINATE: LOAD REPLACE KEEPDICTIONARY または LOAD INSERT | TERMINATE: LOAD REPLACE RESETDICTIONARY |
|---|---|---|---|---|
| YES | YES | YES | 既存のディクショナリーを保持します。 | どちらのディクショナリーも保持しません。2 |
| YES | YES | NO | 既存のディクショナリーを保持します。 | 何も保持しません。2 |
| YES | NO | YES | 既存のディクショナリーを保持します。 | 何も保持しません。 |
| YES | NO | NO | 何も保持しません。 | 何も保持しません。 |
| NO | YES | YES | 既存のディクショナリーを保持します。 | 何も保持しません。 |
| NO | YES | NO | 既存のディクショナリーを保持します。 | 何も保持しません。 |
| NO | NO | YES | 既存のディクショナリーを保持します。 | 何も保持しません。 |
| NO | NO | NO | 何も行われません。 | 何も行われません。 |
LOAD RESTART は、到達した最後の整合点まで表を切り捨てます。 LOAD RESTART 処理の一部として、最後の LOAD 整合点が取られたときにコンプレッション・ディクショナリーが表にあった場合、そのディクショナリーが表に存在します。 その場合、LOAD RESTART では新規ディクショナリーは作成されません。 考えられる条件の要約については、表 4 を参照してください。
| 表の COMPRESS 属性 | LOAD 整合点の前に表の行データ・ディクショナリーが存在するか1 | 最後の LOAD 前に XML ストレージ・オブジェクト・ディクショナリーが存在したか2 | RESTART: LOAD REPLACE KEEPDICTIONARY または LOAD INSERT | RESTART: LOAD REPLACE RESETDICTIONARY |
|---|---|---|---|---|
| YES | YES | YES | 既存のディクショナリーを保持します。 | 既存のディクショナリーを保持します。 |
| YES | YES | NO | 既存の表の行データ・ディクショナリーを保存し、ADC の制約を受ける XML ディクショナリーを作成します。 | 既存の表の行データ・ディクショナリーを保存し、XML ディクショナリーを作成します。 |
| YES | NO | YES | ADC の制約を受ける表の行データ・ディクショナリーを作成します。 既存の XML ディクショナリーを保持します。 | 表の行データ・ディクショナリーを作成します。 既存の XML ディクショナリーを保持します。 |
| YES | NO | NO | ADC の制約を受ける表の行データ・ディクショナリーおよび XML ディクショナリーを作成します。 | 表の行データ・ディクショナリーおよび XML ディクショナリーを作成します。 |
| NO | YES | YES | 既存のディクショナリーを保持します。 | 既存のディクショナリーを除去します。 |
| NO | YES | NO | 既存の表の行データ・ディクショナリーを保存します。 | 既存の表の行データ・ディクショナリーを除去します。 |
| NO | NO | YES | 既存の XML ディクショナリーを保持します。 | 既存の XML ディクショナリーを除去します。 |
| NO | NO | NO | 何も行われません。 | 何も行われません。 |
| 修飾子 | 説明 |
|---|---|
| anyorder | この修飾子は、 cpu_parallelism パラメーターと共に使用されます。 ソース・データの順序を保持する必要がないことを指定します。 そのため、SMP システムでは、パフォーマンスがかなり向上します。 cpu_parallelism の値が 1 になっていると、このオプションは無視されます。このオプションは、SAVECOUNT > 0 の場合はサポートされません。整合点の後のクラッシュ・リカバリーでは、順序のとおりにデータをロードする必要があるからです。 |
| generatedignore | この修飾子を指定すると、ロード・ユーティリティーは、データ・ファイルに入っている、すべての生成済み列のデータを無視するようになります。この結果、すべての生成列の値はユーティリティーによって生成されます。 この修飾子は、 generatedmissing または generatedoverride 修飾子とともに使用することはできません。 |
| generatedmissing | この修飾子が指定されている場合、 ユーティリティーは、 生成列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なします。 この結果、すべての生成列の値はユーティリティーによって生成されます。 この修飾子は、generatedignore または generatedoverride 修飾子とともに使用することはできません。 |
| generatedoverride | この修飾子は、(こうした列のタイプの通常の規則に反して) 表内のすべての生成列で、
ユーザーのデータを受け入れるようにロード・ユーティリティーに指示します。
別のデータベース・システムからデータをマイグレーションする場合や、ROLLFORWARD DATABASE コマンドの RECOVER DROPPED TABLE オプションを使用してリカバリーしたデータから表をロードする場合は、この修飾子を使用すると便利です。この修飾子を使用した場合、
NULL 不可の生成列でデータまたは NULL データの入っていない行はリジェクトされます (SQL3116W)。
この修飾子が使用される場合、表は SET INTEGRITY PENDING 状態になります。
ユーザー提供の値をチェックせずに表を SET INTEGRITY PENDING 状態から解放するには、
ロード操作後に以下のコマンドを発行します。
表の SET INTEGRITY PENDING 状態を解除し、
ユーザー定義の値の検査を強制するには、
ロード操作の後以下のコマンドを発行してください。
この修飾子が指定され、パーティション・キー、ディメンション・キー、または分散キーのいずれかに生成された列がある場合、LOAD コマンドが修飾子を generatedignore 自動的に変換し、ロードを進めます。この影響で、生成された列の値すべてが再生成されます。 この修飾子は、generatedmissing または generatedignore 修飾子と共に使用することはできません。 |
| identityignore | この修飾子はロード・ユーティリティーに対して、 ID 列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この結果として、すべて ID 値はこのユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 つまり、GENERATED ALWAYS 列の場合には、リジェクトされる行はありません。 この修飾子は、identitymissing または identityoverride 修飾子とともに使用することはできません。 |
| identitymissing | この修飾子を指定すると、ユーティリティーは、ID 列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、行ごとに値を生成します。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 この修飾子は、 identityignore または identityoverride 修飾子とともに使用することはできません。 |
| identityoverride | この修飾子は、GENERATED ALWAYS として定義した ID 列が、 ロードする表に存在している場合にのみ使用するべきです。 この修飾子はユーティリティーに対し、 そのような列に関して、 明示的な非 NULL データを受け入れる (これらのタイプの ID 列に関する通常の規則に反する) ように指示します。 表を GENERATED ALWAYS として定義しなければならない状況で別のデータベース・システムからデータをマイグレーションする場合や、 ROLLFORWARD DATABASE コマンドの DROPPED TABLE RECOVERY オプションを使用してリカバリーしたデータから表をロードする場合は、この修飾子を使用すると便利です。この修飾子を使用すると、ID 列にデータのない行や NULL データが入っている行は、リジェクトされます (SQL3116W)。 この修飾子は、identitymissing または identityignore 修飾子とともに使用することはできません。 このオプションが使用されていると、 ロード・ユーティリティーは、 表の ID 列内の値の固有性の保守または検証を行いません。 |
| implicitlyhiddeninclude | この修飾子が指定されている場合、ユーティリティーは、入力データ・ファイルに暗黙非表示列へのデータが含まれると見なし、そのデータもロードします。この修飾子は、 implicitlyhiddenmissing 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、注: セクションを参照してください。 |
| implicitlyhiddenmissing | この修飾子を指定すると、ユーティリティーは入力データ・ファイルに暗黙的な非表示列のデータが含まれないと見なし、ユーティリティーがそれらの暗黙的な非表示列の値を生成します。 この修飾子は、 implicitlyhiddeninclude 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、注: セクションを参照してください。 |
| indexfreespace=x | x は、0 から 99 までの整数です。この値は、ロード操作で索引を再作成するときに各索引ページに残すフリー・スペースのパーセンテージとして解釈されます。
INDEXING
MODE INCREMENTAL を指定したロード操作では、このオプションが無視されます。ページの最初の項目は、制限なしで追加されます。
それより後の項目は、フリー・スペースのパーセントしきい値内である場合に追加されます。
デフォルト値は、CREATE INDEX の実行時に使用した値です。
この値は、CREATE INDEX ステートメントに指定された PCTFREE 値よりも優先して使用されます。 indexfreespace オプションの対象になるのは、索引のリーフ・ページだけです。 |
| lobsinfile | lob-path には、LOB データの入ったファイルへのパスを指定します。
ASC、DEL、または IXF ロード入力ファイルには、
LOB 列に LOB データが入っているファイルの名前が入っています。
ファイル・タイプが CURSOR の場合、このオプションはサポートされていません。 lobsinfile 修飾子を使用するときには、LOB ファイルの配置場所を LOBS FROM 節で指定します。LOBS FROM 節を指定すると、lobsinfile の動作が暗黙的にアクティブになります。LOAD ユーティリティーは、データをロードするときに、LOB ファイルを検索するためのパスのリストを LOBS FROM 節から受け取ります。 各パスには、データ・ファイル内で LOB ロケーション指定子 (LLS) によって示される 1 つ以上の LOB の入った、少なくとも 1 つのファイルが組み込まれます。 LLS は、LOB ファイル・パスに保管されるファイル内の LOB のロケーションのストリング表現です。 LLS の形式は、filename.ext.nnn.mmm/ です。ここで、filename.ext は、LOB が含まれているファイルの名前、nnn は、そのファイルに入っている LOB のオフセット (バイト単位)、mmm は、その LOB の長さ (バイト単位) です。例えば、ストリング db2exp.001.123.456/ がデータ・ファイルに保管される場合、 LOB はファイル db2exp.001 のオフセット 123 に位置し、456 バイト長です。 NULL LOB を指定するには、サイズに -1 と入力します。 サイズを 0 と指定すると、長さが 0 の LOB として扱われます。 長さが -1 の NULL LOB の場合、オフセットとファイル名は無視されます。 例えば、NULL LOB の LLS は、db2exp.001.7.-1/ のようになります。 |
| noheader | ヘッダー検査コードをスキップします (単一パーティション・データベースのパーティション・グループに存在する表へのロード操作にのみ適用します)。
単一パーティションのデータベース・パーティション・グループに存在する表に対してデフォルトの MPP ロード (モード PARTITION_AND_LOAD) が使用される場合、 ファイルにはヘッダーが組み込まれないと想定されます。 したがって、noheader 修飾子を指定する必要はありません。LOAD_ONLY モードが使用される場合、ファイルにはヘッダーが付いていると想定されます。 noheader 修飾子が必要になるのは、ヘッダーのないファイルを使用して LOAD_ONLY 操作を実行する場合に限られます。 |
| norowwarnings | リジェクトされた行についてのすべての警告を抑止します。 |
| pagefreespace=x | x は、0 から 100 までの整数です。この値は、各データ・ページ内でフリー・スペースとして残される部分のパーセンテージとして解釈されます。 最小の行サイズのために指定値が無効な場合 (例えば、最低でも 3,000 バイトの長さが必要な行で、x 値が 50 になっている場合など) は、行が新しいページに配置されます。値として 100 を指定すると、各行が新しいページに配置されます。表の PCTFREE 値は、ページごとに指定されたフリー・スペースの量を決定します。 ロード操作の pagefreespace 値または表の PCTFREE 値が設定されていないと、ユーティリティーはそれぞれのページで可能なかぎり多くのスペースを満たします。pagefreespace に設定されている値は、表で指定されている PCTFREE 値をオーバーライドします。 |
| periodignore | この修飾子はロード・ユーティリティーに対して、期間列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この修飾子が指定された場合、すべての期間列の値はユーティリティーによって生成されます。この修飾子は、periodmissing 修飾子および periodoverride 修飾子のどちらとも、共に使用することはできません。 |
| periodmissing | この修飾子が指定されている場合、 ユーティリティーは、期間列のデータが入力データ・ファイルに入っていないものと見なします。 この修飾子が指定された場合、すべての期間列の値はユーティリティーによって生成されます。この修飾子は、periodignore 修飾子および periodoverride 修飾子のどちらとも、共に使用することはできません。 |
| periodoverride | この修飾子は、システム期間テンポラル表の GENERATED ALWAYS AS ROW BEGIN 列および GENERATED ALWAYS AS ROW END 列で、ユーザーのデータを受け入れるようにロード・ユーティリティーに指示します。この動作は、このようなタイプの列に対する通常の規則とは異なっています。 この修飾子は履歴データを維持する場合、およびシステム期間テンポラル表にタイム・スタンプを含むデータをロードする場合に、役立てることができます。この修飾子を使用すると、データが入っていない行や、ROW BEGIN 列または ROW END 列に対する NULL データはリジェクトされます。 |
| rowchangetimestampignore | この修飾子はロード・ユーティリティーに対して、ROW CHANGE TIMESTAMP 列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この結果、すべての ROW CHANGE TIMESTAMP 列がユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS 列でも GENERATED BY DEFAULT 列でも同じです。 つまり、GENERATED ALWAYS 列の場合には、リジェクトされる行はありません。 この修飾子は、rowchangetimestampmissing または rowchangetimestampoverride 修飾子とともに使用することはできません。 |
| rowchangetimestampmissing | この修飾子を指定すると、ユーティリティーは、行変更タイム・スタンプ列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、行ごとに値を生成します。この動作は、GENERATED ALWAYS 列でも GENERATED BY DEFAULT 列でも同じです。 この修飾子は、rowchangetimestampignore または rowchangetimestampoverride 修飾子とともに使用することはできません。 |
| rowchangetimestampoverride | この修飾子は、GENERATED ALWAYS として定義した ROW CHANGE TIMESTAMP 列が、ロードする表に存在している場合にのみ使用するべきです。 この修飾子はユーティリティーに対し、そのような列に関して、明示的な非 NULL データを受け入れる (これらのタイプの ROW CHANGE TIMESTAMP 列に関する通常の規則に反する) ように指示します。 表を GENERATED ALWAYS として定義しなければならない状況で別のデータベース・システムからデータをマイグレーションする場合や、 ROLLFORWARD DATABASE コマンドの DROPPED TABLE RECOVERY オプションを使用してリカバリーしたデータから表をロードする場合は、この修飾子を使用すると便利です。この修飾子を使用すると、データが入っていない行や ROW CHANGE TIMESTAMP 列に対する NULL データはすべてリジェクトされます (SQL3116W)。 この修飾子は、rowchangetimestampmissing または rowchangetimestampignore 修飾子とともに使用することはできません。 このオプションが使用されていると、ロード・ユーティリティーは、 表の ROW CHANGE TIMESTAMP 列内の値の固有性の保守または検証を行いません。 |
| seclabelchar | 入力ソース・ファイル内のセキュリティー・ラベルが、デフォルトのエンコードされた数値形式ではなく、セキュリティー・ラベル値のストリング形式であることを示します。
LOAD は、ロード時に各セキュリティー・ラベルを内部形式に変換します。ストリングが適切な形式ではない場合、行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3242W) が戻されます。
ストリングが表を保護するセキュリティー・ポリシーの一部である有効なセキュリティー・ラベルを表していない場合、行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3243W) が戻されます。
seclabelname 修飾子を指定した場合は、この修飾子を指定できません。同時に指定すると、ロードは失敗し、エラー (SQLCODE SQL3525N) が戻されます。 単一の DB2SECURITYLABEL 列で構成される表がある場合、データ・ファイルは例えば次のようになります。
このデータのロードまたはインポートでは、以下のように seclabelchar ファイル・タイプ修飾子を使用する必要があります。
|
| seclabelname | 入力ソース・ファイル内のセキュリティー・ラベルが、デフォルトのエンコードされた数値形式ではなく、名前によって指定されることを示します。
LOAD は、その名前に対応する適切なセキュリティー・ラベルがあれば、その名前をそのセキュリティー・ラベルに変換します。表を保護するセキュリティー・ポリシーで、指定された名前のセキュリティー・ラベルが存在しない場合、
行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3244W) が戻されます。
seclabelchar 修飾子を指定した場合は、この修飾子を指定できません。同時に指定すると、ロードは失敗し、エラー (SQLCODE SQL3525N) が戻されます。 単一の DB2SECURITYLABEL 列で構成される表がある場合、データ・ファイルは以下のようなセキュリティー・ラベル名で構成される可能性があります。
このデータのロードまたはインポートでは、以下のように seclabelname ファイル・タイプ修飾子を使用する必要があります。
注: ファイル・タイプが ASC の場合、セキュリティー・ラベルの名前の後にスペースがあれば、それも名前の一部として解釈されます。
これを回避するには、striptblanks ファイル・タイプ修飾子を使用してスペースが除去されるようにします。
|
| totalfreespace=x | x は、0 以上の整数です。この値は表内の合計ページのうち、 表の終わりにフリー・スペースとして追加される部分のパーセンテージと解釈されます。 例えば、x が 20 で、データのロード後に表に 100 個のデータ・ページがある場合は、20 個の空ページが追加されます。その表のデータ・ページの合計数は 120 になります。 データ・ページの総数は、表の索引ページの数には影響を与えません。 このオプションは、索引オブジェクトには影響を与えません。 このオプションを指定して 2 つのロードが行われる場合、 2 番目のロードは、最初のロードによって最後に付加された余分のスペースを再利用しません。 |
| transactionidignore | この修飾子はロード・ユーティリティーに対して、TRANSACTION START ID 列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この修飾子が指定された場合、TRANSACTION START ID 列の値はユーティリティーによって生成されます。この修飾子は、transactionidmissing 修飾子および transactionidoverride 修飾子のどちらとも、共に使用することはできません。 |
| transactionidmissing | この修飾子が指定されている場合、 ユーティリティーは、TRANSACTION START ID 列のデータが入力データ・ファイルに入っていないものと見なします。 この修飾子が指定された場合、TRANSACTION START ID 列の値はユーティリティーによって生成されます。この修飾子は、transactionidignore 修飾子および transactionidoverride 修飾子のどちらとも、共に使用することはできません。 |
| transactionidoverride | この修飾子は、システム期間テンポラル表の GENERATED ALWAYS AS TRANSACTION START ID 列で、ユーザーのデータを受け入れるようにロード・ユーティリティーに指示します。この動作は、このタイプの列に対する通常の規則とは異なっています。 この修飾子を使用すると、データが入っていない行や、TRANSACTION START ID 列に対する NULL データはリジェクトされます。 |
| usedefaults | ターゲット表の列のソース列が指定されているが、1 つ以上の行インスタンスのデータが入っていない場合は、デフォルト値がロードされます。
欠落データの例を以下に示します。
|
| 修飾子 | 説明 |
|---|---|
| codepage=x | x は、ASCII 文字ストリングです。この値は、
入力データ・セット内のデータのコード・ページとして解釈されます。
ロード操作時に、文字データ (および文字内で指定された数値データ) は、
このコード・ページからデータベースのコード・ページへ変換されます。
以下の規則が適用されます。
ファイル・タイプが CURSOR の場合、このオプションはサポートされていません。 |
| dateformat="x" | x はソース・ファイルの日付のフォーマットです。1 有効な日付エレメントは次のとおりです。
デフォルト値の 1 が、指定されない各エレメントに割り当てられます。
日付形式の例を以下に示します。
|
| dumpfile = x | x は、
リジェクトされた行を書き込む例外ファイルの (サーバー・データベース・パーティションによる) 完全修飾名です。
1 レコードにつき、最大で 32 KB のデータが書き込まれます。
以下に、ダンプ・ファイルの指定方法の例を示します。
ファイルは、インスタンスの所有者によって作成されて所有されます。 デフォルトのファイル権限をオーバーライドするには、 dumpfileaccessall ファイル・タイプ修飾子を使用します。 注:
|
| dumpfileaccessall | ダンプ・ファイルの作成時に、読み取りアクセスを OTHERS に付与します。
このファイル・タイプ修飾子が有効なのは、以下の場合のみです。
指定されたファイルが既に存在する場合、その権限は変更されません。 |
| fastparse | 使用に際しては、注意が必要です。 ユーザー指定の列値の構文検査が削減されるので、パフォーマンスは向上します。 表は、体系的な正確さが確保されます (セグメント化違反またはトラップを防ぐための十分なデータ・チェックがユーティリティーで実行されます) が、データの一貫性の妥当性検査は行われません。 データに一貫性があり、正確であることが確実な場合にのみ、このオプションを使用してください。 例えば、ユーザー指定のデータに無効なタイム・スタンプ列値 :1>0-00-20-07.11.12.000000 が含まれている場合でも、fastparse が指定されていれば、その値は表に挿入されてしまいますが、fastparse が指定されていなければ、その値はリジェクトされます。 |
| implieddecimal | 暗黙指定されている小数点の位置が列定義によって決定され、
値の終わりにあるとは見なされなくなります。
例えば、値 12345 は、12345.00 ではなく、123.45 として DECIMAL(8,2) 列にロードされます。
この修飾子は、 packeddecimal 修飾子と共に使用することはできません。 |
| timeformat="x" | x はソース・ファイル内の時刻のフォーマットです。1 有効な時刻エレメントは以下のとおりです。
指定されない各エレメントには、デフォルト値の 0 が割り当てられます。
時刻フォーマットの例を以下に示します。
|
| timestampformat="x" | x はソース・ファイルのタイム・スタンプのフォーマットです。1 有効なタイム・スタンプ・エレメントは以下のとおりです。
|
| timestampformat="x" (Continued) | YYYY、M、MM、D、DD、または DDD エレメントが指定されていない場合、デフォルト値の 1 が割り当てられます。
MMM エレメントが指定されていない場合、デフォルト値の「Jan」が割り当てられます。
他のエレメントが指定されていない場合には、デフォルト値の 0 が割り当てられます。
タイム・スタンプ・フォーマットの例を以下のセクションに示します。
MMM エレメントの有効な値は、「jan」、「feb」、「mar」、「apr」、「may」、「jun」、「jul」、 「aug」、「sep」、「oct」、「nov」、および「dec」です。 これらの値では、大/小文字は区別されません。 timestampformat 修飾子を指定しなかった場合、ロード・ユーティリティーは、タイム・スタンプ・フィールドで以下の 2 つの有効な形式のいずれかを使用します。
ロード・ユーティリティーは、DD と HH の間の区切り記号を調べてフォーマットを選択します。 ダッシュ '-' になっていれば、ロード・ユーティリティーは、通常のダッシュとドットの形式 (YYYY-MM-DD-HH.MM.SS) を使用します。 区切り文字がブランク・スペースの場合、ロード・ユーティリティーはコロン「:」を使用して、HH、MM、および SS を区切ります。 どちらのフォーマットでも、マイクロ秒フィールド (UUUUUU) が含まれる場合、ロード・ユーティリティーは区切り文字としてドット「.」を使用します。 YYYY-MM-DD-HH.MM.SS.UUUUUU も YYYY-MM-DD HH:MM:SS.UUUUUU も有効です。 次の例では、ユーザー定義の日時形式を指示するデータを、schedule という表にロードする方法を示します。
|
| usegraphiccodepage | usegraphiccodepage が指定された場合、GRAPHIC または
2 バイト文字ラージ・オブジェクト (DBCLOB) データ・フィールドにロード
されるデータは、GRAPHIC コード・ページであると見なされます。
データの残りは、文字コード・ページであると見なされます。
GRAPHIC コード・ページは、文字コード・ページと関連付けられます。
LOAD は、codepage 修飾子が指定されている場合はその修飾子、または codepage 修飾子が指定されていない場合は、データベースのコード・ページを通じて、文字コード・ページを決定します。
この修飾子は、リカバリーされている表に GRAPHIC データがある場合にのみ、 ドロップ済み表のリカバリーによって生成された区切りデータ・ファイルとともに使用される 必要があります。 制約事項 EXPORT ユーティリティーで作成された DEL ファイルは、1 つのコード・ページのみでエンコードされたデータを含んでいるため、これらのファイルで usegraphiccodepage 修飾子を指定することはできません。 usegraphiccodepage 修飾子はまた、ファイル内の 2 バイト文字ラージ・オブジェクト (DBCLOB) には無視されます。 |
| xmlchar | XML 文書が文字コード・ページでエンコードされていることを示します。
このオプションは、指定の文字コード・ページでエンコードされていても エンコード宣言を含まない XML 文書を処理するために役立ちます。 各文書で、宣言タグが存在してエンコード属性が含まれる場合、 そのエンコード方式は文字コード・ページと一致する必要があります。 一致しない場合、その文書を含む行はリジェクトされます。 文字コード・ページは codepage ファイル・タイプ修飾子で指定されている値であるか、 または指定がない場合はアプリケーションのコード・ページであることに注意してください。 デフォルトでは、文書は Unicode でエンコードされているか、またはエンコード属性のある宣言タグを含んでいます。 |
| xmlgraphic | XML 文書が指定された GRAPHIC コード・ページでエンコードされていることを示します。
このオプションは、特定の GRAPHIC コード・ページでエンコードされていても エンコード宣言を含まない XML 文書を処理するために役立ちます。 各文書で、宣言タグが存在してエンコード属性が含まれる場合、 そのエンコード方式は GRAPHIC コード・ページと一致する必要があります。 一致しない場合、その文書を含む行はリジェクトされます。 GRAPHIC コード・ページは codepage ファイル・タイプ修飾子で指定されている値のグラフィック・コンポーネントであるか、または指定がない場合はアプリケーションのコード・ページのグラフィック・コンポーネントであることに注意してください。 デフォルトでは、文書は Unicode でエンコードされているか、またはエンコード属性のある宣言タグを含んでいます。 |
| 修飾子 | 説明 |
|---|---|
| binarynumerics | 数値データ (DECIMAL 以外) は、文字表記ではなく、
バイナリー形式でなければなりません。
これによって、コストの大きい変換操作を避けることができます。
このオプションがサポートされるのは、定位置 ASC において、 reclen オプションによって固定長レコードが指定されている場合だけです。 以下の規則が適用されます。
この修飾子の影響を受ける列のデータに NULL があってはなりません。 この修飾子を使用すると、ブランク (通常は NULL と解釈される) は、 バイナリー値であると解釈されます。 |
| nochecklengths | nochecklengths を指定した場合は、 ソース・データの中にターゲット表の列のサイズを超える列定義がある場合であっても、 各行のロードが試みられます。 コード・ページ変換によってソース・データが縮小されれば、 そのような行であったとしても正常にロードすることができます。 例えば、ソースに 4 バイトの EUC データがある場合、 それがターゲットで 2 バイトの DBCS データに縮小されれば、必要なスペースは半分で済みます。 このオプションが特に役立つのは、列の定義は不一致であるがソース・データが常に適合することが分かっている場合です。 |
| nullindchar=x | x は、単一文字です。NULL 値を示す文字を x に変更します。x のデフォルト値は Y です。2 文字が 1 つの英字である場合を除いて、この修飾子は EBCDIC データ・ファイルで大文字小文字を区別します。 例えば、NULL 標識文字を文字 N に指定した場合、 n も NULL 標識と認識されます。 |
| packeddecimal | binarynumerics 修飾子は DECIMAL フィールド・タイプで構成されないため、
パック 10 進数データを直接ロードします。
このオプションがサポートされるのは、定位置 ASC において、 reclen オプションによって固定長レコードが指定されている場合だけです。 符号ニブル用にサポートされる値は以下のとおりです。
この修飾子の影響を受ける列のデータに NULL があってはなりません。 この修飾子を使用すると、ブランク (通常は NULL と解釈される) は、 バイナリー値であると解釈されます。 サーバーのプラットフォームには関係なく、 ロードのソース・ファイルに入っているバイナリー・データのバイト順はビッグ・エンディアンであることが前提となっています。 つまり、この修飾子を Windows オペレーティング・システムで使用する場合も、バイト順を逆にしてはなりません。 この修飾子は、 implieddecimal 修飾子と共に使用することはできません。 |
| reclen=x | x は、最大値 32767 の整数です。各行では x 個の文字が読み取られ、行の終わりを示す改行文字は使用されません。 |
| striptblanks | データを可変長フィールドにロードする際に、後書きブランク・スペースを切り捨てます。
このオプションを指定しない場合、ブランク・スペースはそのまま保持されます。
このオプションは、 striptnulls と一緒に指定することはできません。 これらは、相互に排他的なオプションです。このオプションは、廃止された t オプション (下位互換性のためだけにサポートされる) に代わるものです。 |
| striptnulls | データを可変長フィールドにロードする際に、後書き NULL (0x00 文字) を切り捨てます。
このオプションを指定しない場合、NULL はそのまま保持されます。
このオプションは、striptblanks と一緒に指定することはできません。 これらは、相互に排他的なオプションです。このオプションは、廃止された padwithzero オプション (下位互換性のためだけにサポートされる) に代わるものです。 |
| zoneddecimal | ゾーン 10 進数データをロードします。DECIMAL フィールド・タイプは、binarynumerics 修飾子の対象に含まれていません。このオプションがサポートされるのは、定位置 ASC において、
reclen オプションによって固定長レコードが指定されている場合だけです。
ハーフバイト符号値は、以下の値のいずれかになります。
数字としてサポートされている値は、0x0 から 0x9 です。 ゾーンとしてサポートされている値は、0x3 および 0xF です。 |
| 修飾子 | 説明 |
|---|---|
| chardelx | x は単一文字のストリング区切り文字です。
デフォルト値は、二重引用符 (") です。指定した文字は、文字ストリングを囲むために、二重引用符の代わりに使用されます。23 文字ストリング区切り文字として明示的に二重引用符 (") を指定したい場合、以下のように指定します。
以下のように、文字ストリング区切りとして単一引用符 (') を指定することもできます。
|
| coldelx | x は単一文字の列区切り文字です。 デフォルト値はコンマ (,) です。 指定した文字は、列の終わりを表すために、 コンマの代わりに使用されます。 23 |
| decplusblank | 正符号文字。正の 10 進値の接頭部として、正符号 (+) ではなくブランク・スペースを使用します。 デフォルトのアクションでは、正の 10 進数の前に正符号 (+) が付けられます。 |
| decptx | x は、小数点文字としてピリオドの代わりに使用される単一文字です。 デフォルト値はピリオド (.) です。指定した文字は、小数点文字としてピリオドの代わりに使用されます。 23 |
| delprioritychar | 区切り文字の現在のデフォルト優先順位は、(1) レコード区切り文字、(2) 区切り文字、(3) 列区切り文字です。
この修飾子を使用すると、区切り文字の優先順位が
(1) 区切り文字、(2) レコード区切り文字、(3) 列区切り文字に戻り、
以前の優先順位に依存している既存のアプリケーションが保護されます。
構文:
例えば、以下のような DEL データ・ファイルがあるとします。
delprioritychar 修飾子を指定しているので、このデータ・ファイルは、2 行だけになります。2 番目の <row delimiter> は 2 番目の行の最初のデータ列の一部と解釈されますが、1 番目と 3 番目の <row delimiter> は実レコードの区切り文字と解釈されます。 この修飾子が指定されていない 場合、 このデータ・ファイルでは 3 行になり、各行は <row delimiter> によって区切られます。 |
| keepblanks | タイプが CHAR、VARCHAR、LONG VARCHAR、または CLOB の各フィールドの前後のブランクを保持します。
このオプションを指定しないと、区切り文字で囲まれていないすべての前後のブランクは除去され、
表のすべてのブランク・フィールドに NULL が挿入されます。
以下の例では、データ・ファイルにある前後のブランクを保存しながら、
TABLE1 という表にデータをロードする方法を示します。
|
| nochardel | ロード・ユーティリティーは、列区切り文字と列区切り文字の間にあるすべての
バイトが列データの一部であると見なします。
文字区切り文字は、列データの一部として構文解析されます。
DB2 データベース・システムを使用してエクスポートしたデータについては、このオプションを指定しないでください (ただし、エクスポート時に nochardel を指定していた場合は例外です)。これは、区切り文字を持たないベンダー・データ・ファイルをサポートするために用意されています。
不適切に使用すると、データが損失または破壊される場合があります。
このオプションを chardelx、 delprioritychar または nodoubledel と一緒に指定することはできません。 これらは、相互に排他的なオプションです。 |
| nodoubledel | 二重文字区切りの認識を抑止します。 |
| 修飾子 | 説明 |
|---|---|
| forcein | コード・ページが不一致でもデータを受け入れ、コード・ページ間の変換を抑止するようにユーティリティーに指示します。
固定長ターゲット・フィールドに、 そのデータが入るだけの十分な大きさがあるかどうかがチェックされます。 nochecklengths を指定した場合、 そのような検査は実行されず、各行のロードが試みられます。 |
| nochecklengths | nochecklengths を指定した場合は、 ソース・データの中にターゲット表の列のサイズを超える列定義がある場合であっても、 各行のロードが試みられます。 コード・ページ変換によってソース・データが縮小されれば、 そのような行であったとしても正常にロードすることができます。 例えば、ソースに 4 バイトの EUC データがある場合、 それがターゲットで 2 バイトの DBCS データに縮小されれば、必要なスペースは半分で済みます。 このオプションが特に役立つのは、列の定義は不一致であるがソース・データが常に適合することが分かっている場合です。 |
"M" (月または分のどちらにもとれる)
"M:M" (月と分の区別がつかない)
"M:YYYY:M" (両方とも月と解釈される)
"S:M:YYYY" (時刻値と日付値の両方に隣接している)
あいまいな場合、ユーティリティーはエラー・メッセージを報告し、操作は失敗します。"M:YYYY" (M (月))
"S:M" (M (分))
"M:YYYY:S:M" (M (月)....M (分))
"M:H:YYYY:M:D" (M (分)....M (月))
二重引用符や円記号などの文字の前には、エスケープ文字 (例えば、¥) を付けなければなりません。
... modified by coldel# ...
... modified by coldel0x23 ...
... modified by coldelX23 ...
db2 load from delfile1 of del modified by
implicitlyhiddeninclude identitymissing insert into table1
しかし、以下のステートメントにおいてファイル・タイプ修飾子の順序を変更すると、入力データにすべての暗黙的な非表示列のデータ (非表示の ID 列も含む) が含まれることになります。
一方、暗黙的に非表示でない ID 列のデータは含まれません。
db2 load from delfile1 of del modified by
identitymissing implicitlyhiddeninclude insert into table1
| codepage=N | usegraphiccodepage | LOAD の動作 |
|---|---|---|
| なし | なし | CLIENT オプションの指定があっても、ファイル内のすべてのデータは、アプリケーション・コード・ページではなく、データベース・コード・ページであると見なされます |
| あり | なし | ファイル内のすべてのデータは、コード・ページ N であると見なされます。
警告: N が 1 バイト・コード・ページの場合、GRAPHIC データを データベースにロードすると壊れます。 |
| なし | あり | CLIENT オプションの指定があっても、ファイル内の文字データは、データベース・コード・ページであると見なされます。
CLIENT オプションの指定があっても、GRAPHIC データは、データベース GRAPHIC データのコード・ページであると見なされます。
データベース・コード・ページが 1 バイトの場合は、すべてのデータはデータベース・コード・ページであると見なされます。 警告: 1 バイト・データベースに GRAPHIC データをロードすると、壊れます。 |
| あり | あり | 文字データは、コード・ページ N であると見なされます。
GRAPHIC データは、N の GRAPHIC コード・ページであると見なされます。
N が 1 バイトまたは 2 バイト・コード・ページの場合は、 すべてのデータは、コード・ページ N であると見なされます。 警告: N が 1 バイト・コード・ページの場合、GRAPHIC データを データベースにロードすると壊れます。 |