-20554 TABLE table-name WAS SPECIFIED AS AN ARCHIVE TABLE, BUT THE TABLE DEFINITION IS NOT VALID FOR AN ARCHIVE TABLE. REASON CODE = reason-code.
説明
ALTER TABLE ステートメントが表をアーカイブ表として定義しようとしましたが、表の定義が無効です。
- table-name
- アーカイブ表として指定された表の名前。
- reason-code
- エラーの理由を示す数値。
reason-code の値は以下のいずれかです。
- 1
- 表は、既存のアーカイブ表、または以下のいずれかのタイプの表です。
- アーカイブ使用可能表。 表は、以前のステートメントによってアーカイブ使用可能表として定義されたか、現行のステートメントがアーカイブ使用可能表として定義します。
- システム期間テンポラル表。
- 履歴表。
- 宣言済みグローバル一時表。
- 作成されたグローバル一時表。
- マテリアライズ照会表。
- ビュー。
- 補助表。
- クローン表。
- クローンが定義されている表。
- XML 列に対して暗黙的に作成された表。
- 2
- 表の表定義が不完全です。
- 3
- 表が、表スペースでの唯一の表ではありません。 アーカイブ表は、表スペースでの唯一の表でなければなりません。
- 4
- 表に、ID 列、行開始列、行終了列、トランザクション開始 ID 列、または生成式列が含まれています。 アーカイブ表には、これらの列のいずれも含めることができません。
- 5
- 表に期間定義が含まれていますが、これはアーカイブ表では許可されません。
- 6
- 表が参照整合性制約に関係していますが、これはアーカイブ表では許可されません。
- 7
- アーカイブ表には、アーカイブ使用可能表として使用する表と同じ数の列がありません。 これらの表の両方に同じ数の列がなければなりません。
- 8
- 表にセキュリティー・ラベル列が含まれていますが、これはアーカイブ表では許可されません。
- 9
- 表には、アーカイブ使用可能表として使用する表の ROWID 列に対応する ROWID 列がありません。 アーカイブ使用可能表に ROWID 列がある場合、対応するアーカイブ表の列は GENERATED ALWAYS 属性の指定された ROWID 列でなければなりません。
- 10
- 以下のいずれかの列属性が、アーカイブ使用可能表として使用する表の対応する列の属性と一致しません。
- 名前
- データ・タイプ
- データ・タイプ長 (基本表のインライン LOB 長または XML 長を除く)、精度、およびスケール
- NULL 属性
- 非表示属性
- フィールド・プロシージャー
- FOR BIT、SBCS、または MIXED DATA 属性
- CCSID
- 11
- 表には列マスクまたは行の許可があり、そのどちらもアーカイブ表で許可されていません。
- 12
- 表には、アーカイブ使用可能表として使用する表の行変更タイム・スタンプ列に対応する列がありません。 アーカイブ使用可能表に行変更タイム・スタンプ列がある場合、対応するアーカイブ表の列は GENERATED ALWAYS 属性の指定された行変更タイム・スタンプ列でなければなりません。
システムの処置
このステートメントを処理することはできません。
ユーザーの処置
構文を訂正し、ステートメントを再実行依頼してください。
SQLSTATE
428HX