DELETE TRANDATA
DELETE TRANDATAでは、次のいずれかの操作を行います。
-
Db2 LUWおよびDb2 z/OS: 表を
DATA CAPTURE NONEに変更します。 -
Oracle: サプリメンタル・ロギングを無効にします。
-
SQL Server: 表の拡張ロギングを停止します。
-
PostgreSQL: 表の
REPLICA IDENTITYをNOTHINGに変更します。
デフォルトでは、このコマンドは、Oracle GoldenGateによって使用されるキー列(主キー、一意キー、KEYCOLS列またはすべての行である可能性があります)およびスケジュール列のサプリメンタル・ロギングを削除しようとします。スケジュール列は、主キー、すべての一意キーおよびすべての外部キーです。Oracle GoldenGateのキー列のロギングを削除し、スケジュール列は削除しない場合、NOSCHEDULINGCOLSオプションをDELETE TRANDATAに含めます。ADD TRANDATAがALLCOLSオプションを指定して発行された場合、DELETE TRANDATAをALLCOLSオプションを指定して使用すると、Oracle GoldenGateのキー列を含む、すべての列のサプリメンタル・ロギングが削除されます。DELETE TRANDATAは、すべての表レベルのサプリメンタル・ロギングが無効になるか削除された後に、表の論理レプリケーションを無効にする。この動作は、Oracle 19c以上からサポートされます。また、DELETE TRANDATA操作によって表の最後のサプリメンタル・ログ・グループが削除されると、ALTER TABLE owner.table DISABLE LOGICAL REPLICATIONも実行されます。
DELETE TRANDATAの実行後に、ADD TRANDATA table_nameコマンドを実行して、論理レプリケーションを有効にする必要があります。
ノート: ADD SCHEMATRANDATAを使用して論理レプリケーションを有効にすることはできません。{: .infoboxnote}
このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。このコマンドで指定するユーザーは、ADD TRANDATAに必要なものと同じ権限を持っている必要があります。
構文
DELETE TRANDATA [container.]owner.table [NOSCHEDULINGCOLS | ALLCOLS]
[container.]owner.table
表またはファイルのプラガブル・データベース(これがOracleマルチテナント・コンテナ・データベースの場合)、所有者および名前。任意の名前要素にワイルドカードを使用できます。
NOSCHEDULINGCOLS
コマンドで、指定した表のスケジュール列のサプリメンタル・ロギングを削除しないようにします。スケジュール列は、表の主キー、すべての一意キーおよびすべての外部キーです。
ALLCOLS
指定した表のすべての列のサプリメンタル・ロギングを削除します。
例
DELETE TRANDATA hr.employees
DELETE TRANDATA hr.reg*
DELETE TRANDATA hr.jobs ALLCOLS