DATAPARTITION
DATAPARTITION オプションは、アンロードするデータ・パーティションを指定するために使用します。
制限: 制限: DATAPARTITION オプションがデータ・パーティション化されていないテーブルに使用された場合、このオプションは無視されます、 Optim™ High Performance Unload オプションを無視し、指定されたデータ・パーティションの1つが実際のテーブルに存在しない場合 Optim High Performance Unload はエラーを返します。
- DATAPARTITION ID
- このオプションは、アンロードされるデータのデータ・パーティションの DATAPARTITIONID 列と一致します。 このオプションを使用すれば、内部 ID がリストされているデータ・パーティションに処理を制限できます。
- 構文
DATAPARTITION ID (nn)- 変数
- 整数値のリスト。 単一値、コンマ区切りリスト、またはコロン文字で表されたデータ・パーティション番号の範囲を指定できます。 例えば、(5:9) は、内部IDが5、6、7、8、9のデータパーティションを示します。
- デフォルト
- ありません。
- 例
- 以下の DOCUMENTS 表定義を考慮してください。
次の例を考えてみましょう。 SYSIBM.SYSDATAPARTITIONS のテーブル内容、 TBS1 と TBS2 という名前のテーブルスペースは、それぞれIDが5と6ですCREATE TABLE DOCUMENTS (ID INTEGER, CONTENTS CLOB) IN TBS1, TBS2 PARTITION BY RANGE (ID) (STARTING 1 ENDING 1000 EVERY 100)
内部 ID が 0、5、6、7 のパーティションのみをアンロードするには、以下の制御ファイルを使用しますselect VARCHAR(DATAPARTITIONNAME, 10), VARCHAR(TABNAME,15), DATAPARTITIONID, SEQNO, TBSPACEID from sysibm.sysdatapartitions where tabname='DOCUMENTS' 1 2 DATAPARTITIONID SEQNO TBSPACEID ---------- --------------- --------------- ----------- ----------- PART0 DOCUMENTS 0 0 5 PART1 DOCUMENTS 1 1 6 PART2 DOCUMENTS 2 2 5 PART3 DOCUMENTS 3 3 6 PART4 DOCUMENTS 4 4 5 PART5 DOCUMENTS 5 5 6 PART6 DOCUMENTS 6 6 5 PART7 DOCUMENTS 7 7 6 PART8 DOCUMENTS 8 8 5 PART9 DOCUMENTS 9 9 6 10 record(s) selected.
内部 IDS が 0、5、6、7 のデータパーティションは、 datapart_0_5_6_7.del ファイルにアンロードされます。GLOBAL CONNECT TO SAMPLE; UNLOAD TABLESPACE SELECT * FROM DOCUMENTS; DATAPARTITION ID(0, 5:7) OUTFILE("datapart_0_5_6_7.del") FORMAT DEL;
- DATAPARTITION NAME
- このオプションは、アンロードされるデータのデータ・パーティションの DATAPARTITIONNAME 列と一致します。 このオプションを使用すれば、名前がリストされているデータ・パーティションに処理を制限できます。
- 構文
DATAPARTITION NAME (datapartition_name)- 変数
- データ・パーティション名のコンマ区切りリスト。
- デフォルト
- ありません。
- 例
- DATAPARTITION ID の例で説明されている DOCUMENTS テーブルの定義と SYSIBM.SYSDATAPARTITIONS テーブルの内容を考えてみましょう。 DATAPARTITION NAMEオプションを使用して、内部 ID が 0、5、6、7 のデータパーティションのみをアンロードするには、以下の制御ファイルを使用します
内部 IDS が 0、5、6、7 のデータパーティションは、 datapart_0_5_6_7.del ファイルにアンロードされます。GLOBAL CONNECT TO SAMPLE; UNLOAD TABLESPACE SELECT * FROM DOCUMENTS; DATAPARTITION NAME(PART0,PART5,PART6,PART7) OUTFILE("datapart_0_5_6_7.del") FORMAT DEL;
- データパーティション番号
- このオプションは、アンロードされたデータのデータパーティションのSEQNO列と一致します。 シーケンス番号がリストされているデータパーティションに処理を限定することができます。
- DATAPARTITION TBSPACE
- このオプションは、処理対象のデータ・パーティションの TBSPACEID 列に関連付けられている表スペースの名前と一致します。 このオプションを使用すれば、表スペース内にあり名前がリストされているデータ・パーティションに処理を制限できます。
- 構文
DATAPARTITION TBSPACE (tablespace_name)- 変数
- 表スペース名のコンマ区切りリスト。
- デフォルト
- ありません。
- 例
- DATAPARTITION ID の例で説明されている DOCUMENTS テーブルの定義と SYSIBM.SYSDATAPARTITIONS テーブルの内容を考えてみましょう。 TBS1 というテーブルスペースに位置する内部 ID が 0、2、4、6、8 のデータパーティションのみをアンロードするには、以下の制御ファイルを使用します
TBS1 という名前のテーブルスペースに配置された内部IDが0、2、4、6、8のデータパーティションは、 datapart_0_2_4_6_8.del ファイルにアンロードされます。GLOBAL CONNECT TO SAMPLE; UNLOAD TABLESPACE SELECT * FROM DOCUMENTS; DATAPARTITION TBSPACE (TBS1) OUTFILE("datapart_0_2_4_6_8.del") FORMAT DEL;
例: データ・パーティションの別個の出力ファイルへのアンロード
データパーティションを個別の出力ファイルにアンロードするには、テンプレートキーワード % {datapartition_id}、% {datapartition_name}、% {datapartition_num}、または % {datapartition_tbspace} とともに OUTFILE 句を使用する必要があります。
例えば、以下の SALES_DP 表定義を考慮してください。
CREATE TABLE SALES_DP(invoice_date date,
inv_month int NOT NULL,
inv_year INT NOT NULL,
item_id int NOT NULL,
cust_id int NOT NULL)
PARTITION BY RANGE (inv_year, inv_month)
(PART Q1_02 STARTING (2002,1) ENDING (2002, 3) INCLUSIVE,
PART Q2_02 ENDING (2002, 6) INCLUSIVE,
PART Q3_02 ENDING (2002, 9) INCLUSIVE,
PART Q4_02 ENDING (2002,12) INCLUSIVE,
PART CURRENT ENDING (MAXVALUE, MAXVALUE))次の SYSIBM.SYSDATAPARTITIONS 表の内容を考慮してくださいselect VARCHAR(DATAPARTITIONNAME, 10), VARCHAR(TABNAME,15), DATAPARTITIONID from sysibm.sysdatapartitions where tabname='SALES_DP'
1 2 DATAPARTITIONID
---------- --------------- ---------------
Q1_02 SALES_DP 0
Q2_02 SALES_DP 1
Q3_02 SALES_DP 2
Q4_02 SALES_DP 3
CURRENT SALES_DP 4
5 record(s) selected.データ・パーティション Q1_02 および Q2_02 のみアンロードする場合に、これらのデータ・パーティションをそれぞれ別個のファイルにアンロードするには、以下の制御ファイルを使用します。GLOBAL CONNECT TO SAMPLE;
UNLOAD TABLESPACE
SELECT * FROM DOCUMENTS;
DATAPARTITION NAME(Q1_02, Q2_02)
OUTFILE("datapart.del.%{datapartition_name}")
FORMAT DEL;この制御ファイルでは、 Optim High Performance Unload 現在のホスト上に以下のファイルを作成します- データ・パーティション Q1_02 からのデータが入る datapart.del.Q1_02
- データ・パーティション Q2_02 からのデータが入る datapart.del.Q2_02