-548   A CHECK CONSTRAINT THAT IS DEFINED WITH column-name IS INVALID

説明

CREATE TABLE または ALTER TABLE ステートメントのチェック制約は、以下のうち 1 つ以上の理由から無効です。

  • 制約定義が、フィールド・プロシージャーをもつ列を参照している。
  • 制約定義が、他のオペランドのデータ・タイプよりも 下位の階層の数値データ・タイプの列を参照している。 階層は以下のとおり。
    small integer < large integer 
      < big integer < decimal
      < single precision float 
      < double precision float
  • 制約定義が、他の列オペランドと同じではない数値データ・タイプをもつ列を参照する。
  • 列および他のオペランドが文字ストリング・データ・タイプではない場合、 制約定義が、他のオペランドよりも長さが短い列を参照している。
  • 制約定義が、ROWID 列をもつ列を参照している。
  • 制約定義が、LOB 列をもつ列を参照している。
  • 制約定義は、DECFLOAT 列を参照している。
  • 制約定義が、EBCDIC 表の Db2® 11 Unicode 列を参照している。
  • 制約に、XML 列が含まれる。
  • 制約定義に、XMLQuery 式が含まれる。
  • XMLQUERY または XMLEXISTS 引数リストに、同じ名前の 2 つの引数が含まれている。
  • 生成される列式が、列マスクが定義されている列を参照する。
  • 制約定義に、特殊レジスターの値に依存する組み込み関数が含まれている。
  • 制約定義にグローバル変数が含まれている。

システムの処置

このステートメントを処理することはできません。

ALTER TABLE の場合、チェック制約はオブジェクト表に追加されません。 表の定義は変更されません。

CREATE TABLE の場合、表は作成されません。

プログラマーの応答

チェック制約定義を訂正し、 ステートメントを再び実行してください。

SQLSTATE

42621