EXCLUDE TABLESキーワード - Teradata Tools and Utilities

Teradata Archive/Recovery Utilityリファレンス

Product
Teradata Tools and Utilities
Release Number
16.20
Published
2018年4月
Language
日本語
Last Update
2018-09-07
dita:mapPath
ja-JP/byt1512701979771.ditamap
dita:ditavalPath
ja-JP/byt1512701979771.ditaval
dita:id
B035-2412
Product Category
Teradata Tools and Utilities

データベース レベルのCOPY時には、EXCLUDE TABLESオプションを使用して、アーカイブ ファイルからターゲット データベースへの1つまたは複数のオブジェクトのコピーをスキップすることができます。

オブジェクトを除外した場合、指定したオブジェクトのディクショナリ情報やオブジェクト データは一切コピーされません。 指定したオブジェクトがコピー先のデータベースにすでに存在している場合、データベース内のオブジェクトはCOPY操作の影響を受けません。 指定したオブジェクトの情報もデータもコピーされないので、EXCLUDE TABLESオプションは、コピー時にコピー先データベースから既存のオブジェクトが削除されないようにする目的で使用することも可能です。

EXCLUDE TABLESオプションを使用すれば、アーカイブ ファイルからのオブジェクトのコピーをスキップすることができます。 そのオブジェクトがコピー先のデータベースにすでに存在している場合、データベース内のオブジェクトはCOPY操作の影響を受けません。 EXCLUDE TABLESオプションを指定せずにCOPYを実行した場合は、ターゲット オブジェクトが削除され、アーカイブ ファイル内に保存されているそのオブジェクトのディクショナリ情報およびデータで置き換えられます。

EXCLUDE TABLESオプションを使用すれば、アーカイブ ファイルから除外されたオブジェクトのコピーをスキップすることができます。 アーカイブ時にオブジェクトを除外した場合、そのオブジェクトに対してアーカイブされるのは、ディクショナリ情報とテーブル ヘッダーだけです。オブジェクト データはアーカイブされません。 除外されたオブジェクトをコピーした場合は、ターゲット オブジェクトが削除され、そのオブジェクトのディクショナリ情報で置き換えられます。 しかし、アーカイブ ファイル内にはそのオブジェクトに対応するデータがないので、データはコピーされず、空のオブジェクトが作成されます。 アーカイブの時点でオブジェクトが除外されていたことが原因で既存のオブジェクトが空のオブジェクトに置換されるような事態を防ぐためには、EXCLUDE TABLESオプションを使用して、そのようなオブジェクトのコピーをスキップします。 EXCLUDE TABLESオプションを使用することにより、コピー先データベースにそのオブジェクトが存在している場合であっても、そのオブジェクトはCOPY操作の影響を受けなくなります。

EXCLUDE TABLESオプションを使用すれば、復元先データベースから新規オブジェクトが削除されないようにすることができます。 データベース レベル オブジェクトの通常のCOPY時には、アーカイブ ファイルからオブジェクトがコピーされる前に、コピー先データベース内の全オブジェクトが削除されます。 アーカイブ処理以降に新しいオブジェクトがコピー先データベースに追加されていた場合には、アーカイブ ファイル内にはその新規オブジェクトに対応するアーカイブ データがないという状況になります。 EXCLUDE TABLESオプションを指定せずにCOPYを実行した場合は、その新規オブジェクトに対応するコピー対象のデータがアーカイブ ファイル内に存在しないにもかかわらず、コピー先データベースからそのオブジェクトが削除されます。 コピー時に新規オブジェクトが削除されないようにするためには、EXCLUDE TABLESオプションを使用して、コピー先データベース内の新規オブジェクトを指定します。 それにより、コピー時にコピー先データベースからそのオブジェクトを削除しないようにという指示がTeradata ARCに伝達されます。 EXCLUDE TABLESオプションを使用することにより、コピー先データベース内の新規オブジェクトはCOPY操作の影響を受けなくなります。

EXCLUDED TABLESのリストには、非修飾オブジェクト名(先頭にデータベース名がないもの)または完全修飾オブジェクト名(databasename.tablename)を指定できます。 非修飾オブジェクト名を指定した場合は、COPY文内でそのオブジェクトが関連付けられているソース データベースに属していると見なされます。

EXCLUDE TABLESオプションは、データベース レベルのオブジェクトに対してしか使用できません。

ALL FROM ARCHIVEが指定されている場合は、EXCLUDE TABLESオプションを使用できません。

指定したオブジェクトがアーカイブ ファイルにもコピー先データベースにもない場合、データベースのコピーはスキップされます。

同じCOPY文にFROMオプションとEXCLUDE TABLESオプションを指定する場合には、FROM句を先に指定します。 このようにすると、データベース名がEXCLUDE TABLES句に指定されていない場合でも、除外されたオブジェクトに対してデフォルトのコピー元データベース名がFROM句から生成されます。

同じCOPY文にFROMオプションとEXCLUDE TABLESオプションを指定する場合、EXCLUDE TABLES句で除外するオブジェクト名は、コピー元データベース名またはコピー先データベース名で修飾することができます。 FROM句を使用しない場合、EXCLUDE TABLES句で除外するオブジェクト名は、コピー元データベース名でしか修飾できません。

COPYのEXCLUDE TABLES句に指定可能な個々のオブジェクト タイプの一覧については、テーブルの除外を参照してください。

EXCLUDE TABLES句には、明示的な最大長はありませんが、 指定されたEXCLUDE TABLES句が長すぎてSQLバッファに入りきらないと、SQLリクエストをデータベースに送信することができなくなります。 EXCLUDE TABLES句をデータベースに送信するためのバッファには最大長があるので、EXCLUDE TABLESはそのバッファに完全に収まる必要があります。 バッファには他のデータがあって、可変長である可能性があるため、EXCLUDE TABLES句の最大サイズを決めることはできません。 このような状況が発生すると、次のエラー メッセージが表示されます。ARC0127: "EXCLUDE TABLES list is too long to fit in the SQL buffer(EXCLUDE TABLESリストが長すぎてSQLバッファに入りません)"。EXCLUDE TABLESリストのサイズを小さくして、ジョブを再実行依頼します。