変更の始まり

-148   THE SOURCE TABLE OR TABLESPACE source-name CANNOT BE ALTERED, REASON reason-code

説明

発行された ALTER ステートメントを処理することができませんでした。

source-name
ソース表またはソース表スペースの名前。
reason-code
以下のいずれかの値で示される、メッセージまたは SQL コードの理由。
01
ALTER ステートメントが ALTER COLUMN 文節を指定して、列のデフォルト値のドロップ、デフォルト値の変更、あるいは、長さの変更を行おうとしています。この列は、フィールド・プロシージャーを含んでいるか、参照制約またはチェック制約に関与しているため、変更することはできません。 デフォルト値は、列にフィールド・プロシージャーがあるため変更できません。
02
ALTER ステートメントが ALTER COLUMN 文節を指定して、列のデフォルト値のドロップ、デフォルト値の変更、あるいは、長さの変更を行おうとしています。source-name で示された表は以下のいずれかである可能性があるため、列を変更できません。
  • 編集プロシージャーまたは妥当性検査プロシージャーが含まれている表
03
ALTER ステートメントで、列のデフォルト値のドロップ、デフォルト値の変更、または列のデータ・タイプの変更を試行する ALTER COLUMN 文節が指定されました。DATA CAPTURE CHANGES で表が定義されており、サブシステム・パラメーター RESTRICT_ALT_COL_FOR_DCC が YES に設定されているため、列を変更できません。
04
source-name に対してクローン表が既に定義されているため、ALTER ステートメントを使用してクローン表を定義することはできません。
05
source-name は、ユニバーサル表スペース内にないか、または PAGENUM RELATIVE で定義されている表スペース内にあるため、ALTER ステートメントを使用してクローン表を定義することはできません。
06
source-name は、参照制約またはチェック制約に関与しているため、ALTER ステートメントを使用してクローン表を定義することはできません。
07
source-name に定義されている AFTER トリガーがあるため、ALTER ステートメントを使用してクローン表を定義することはできません。
08
source-name はマテリアライズ照会表であるため、ALTER ステートメントを使用してクローン表を定義することはできません。
09
source-name にアクティブなバージョン管理があるため、ALTER ステートメントを使用してクローン表を定義することはできません。
10
理由は次のいずれかです。

source-name の表スペース、あるいは、表 source-name に対する索引が DEFINE NO を使用して作成されて、そのデータ・セットがまだ定義されていないため、ALTER ステートメントを使用してクローン表を定義することはできません。

LOB 列または XML 列を含むソース表の補助オブジェクトが、DEFINE NO を使用して作成されましたが、データ・セットが未定義です。

11
ALTER ステートメントが、定義済みクローンのある表、または、それ自体がクローンである表を変更しようとしました。
12
source-name は編集プロシージャー、妥当性検査プロシージャー、またはフィールド・プロシージャーを持つように定義されているため、ALTER ステートメントを使用してクローン表を定義できません。
13
索引がバージョン管理の限度である 16 を超えているため、ALTER ステートメントは処理できません。
14
ALTER COLUMN 文節の指定された ALTER ステートメントが、文字 FOR BIT DATA から BINARY にデータ・タイプを変更しようとしましたが、キャストのデフォルト値の長さが 1536 UTF-8 バイトを超えています。
15
表スペースに関連付けられているペンディング中の変更がないため、ALTER ステートメントは処理できません。
16
ALTER TABLESPACE ステートメントに、ハッシュ編成表スペースの MEMBER CLUSTER YES オプションを含めることはできません。
17
source-name はハッシュ編成表であるため、ALTER ステートメントを使用してクローン表を定義することはできません。
18
変更される列が EBCDIC 表の Db2® 11 Unicode 列なので、ALTER ステートメントは処理できません。EBCDIC 表の Db2 11 Unicode 列は、CREATE ステートメントまたは ALTER TABLE ステートメントでその列が最初に定義されたときに指定されたものと同じデータ・タイプ、長さ、および CCSID を指定することによってのみ変更できます。この変更によって列定義が Db2 12 Unicode 列に移行され、機能レベル 500 以上 の活動化以降に使用できるようになります。

システムの処置

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

プログラマーの応答

source-name を、指定どおりに変更できるオブジェクトの名前に変更してステートメントを再発行するか、またはreason-code 値に対して適切な処置を実行してください。

01
source-name を指定どおりに変更できるオブジェクト名に変更してステートメントを再発行する操作を行わないでください。
02
編集プロシージャーまたは有効なプロシージャーを使用して定義されている列を変更しないでください。
03
DATA CAPTURE CHANGES で表が定義されており、サブシステム・パラメーター RESTRICT_ALT_COL_FOR_DCC が YES に設定されているときには、デフォルト値の変更やドロップ、また列のデータ・タイプの変更は行おうとしないでください。
04
クローン表を定義する前に、source-name に既に定義されているクローン表がないことを確認してください。
05
クローン表を定義する前に、表 source-name がユニバーサル表スペースであることを確認してください。
06
クローン表を定義する前に、表 source-name が参照制約またはチェック制約に関与していないことを確認してください。
07
クローン表を定義する前に、表 source-name に定義されている AFTER トリガーがないことを確認してください。
08
クローン表を定義する前に、表 source-name がマテリアライズ照会表でないことを確認してください。
09
クローン表を定義する前に、表 source-name にアクティブなバージョン管理がないことを確認してください。
10
クローン表を定義する前に、source-name とその索引のデータ・セットが定義されていることを確認してください。
11
クローン表を削除してから列を変更してください。ALTER TABLE ステートメントに DROP CLONE 文節を使用する。
12
クローン表を定義する前に、表 source-name に編集プロシージャー、妥当性検査プロシージャー、あるいはフィールド・プロシージャーがないことを確認してください。
13
ALTER ステートメントを再発行する前に、索引のバージョン数を削減してください。
14
デフォルト値を削減またはドロップしてください。デフォルト値を変更するには、ALTER COLUMN SET DEFAULT を指定した ALTER TABLE ステートメントを使用してください。 デフォルト値をドロップするには、ALTER COLUMN DROP DEFAULT を指定した ALTER TABLE ステートメントを使用してください。
15
存在しないペンディング中の変更を削除するように表スペースを変更しないでください。
16
ハッシュ編成表スペースの MEMBER CLUSTER YES オプションを追加しないでください。
17
ハッシュ編成表に対してクローン表を定義しないでください。
18
EBCDIC 表の Db2 11 Unicode 列を変更しようとしないでください。

SQLSTATE

42809

変更の終わり