Teradata Database メッセージ 5728 - 5728 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベース メッセージ

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-01-28
dita:mapPath
ja-JP/tsh1596250259800.ditamap
dita:ditavalPath
ft:empty
dita:id
vza1585613049811
NMT
yes
Product Category
Software
Teradata Vantage
メッセージ
Partitioning violation for table %DBID.%TVMID.
説明
1) プライマリ インデックスのパーティション化定義でそのデータが許可されていないテーブルに対して、挿入または更新が行なわれた。または、2) ALTER TABLE文がプライマリ インデックスのパーティション化を変更しようとしたが、新しいパーティション式で許可されていない既存の行が存在し、WITH DELETE/INSERT句が指定されていなかった。単一レベルの2バイトのパーティション化プライマリ インデックスがあるテーブルの行の場合は、"(CAST((partitioning expression ) AS INTEGER) ) BETWEEN 1 AND max""(maxは65535以下)という暗黙のチェック制約があります。パーティション式がすでにINTEGERである場合、またはRANGE_N関数のみで構成されている場合は、このCASTは含まれません。パーティション式がRANGE_N関数またはCASE_N関数のみで構成されている場合は、小さい方の値がmaxとして使用されます。その場合、maxはその関数によって定義されている範囲/パーティションの数です。パーティション式の結果がNULLになった場合は、制約に違反していることになります。マルチレベルまたは8バイトのパーティション化プライマリ インデックスがあるテーブルの行の場合は、"partitioning_expression_1 IS NOT NULL [AND partitioning_expression_n IS NOT NULL]..."という暗黙のチェック制約があります。この制約に違反している行はテーブルに含めることができないため、テーブルに挿入することや、更新の場合にテーブル内の行を置き換えることはできません。また、既存の行が新しいパーティション式に違反していて、ALTER TABLE文でWITH DELETE/INSERT句が指定されていない場合は、新しいパーティション化は適用できません。%TVMIDは、パーティション化の制約違反が発生したテーブルを示しています。%DBIDは、そのテーブルが含まれているデータベースを示しています。
発生源
STPモジュール
対象ユーザー
エンド ユーザー。
注意
なし
対処法
1)の場合は、パーティション式で参照されている列の値を訂正して、要求を再実行します。2)の場合は、既存行をすべて許容する新しいパーティション式を使用して表の変更を行なうか、WITH DELETE/INSERT句を使用します。