![変更の始まり](KC_ROOT/images/ddita/delta.gif)
-270 FUNCTION NOT SUPPORTED
説明
このステートメントは、1 つ以上の次の制限を違反しているために処理されません。
- ALTER FUNCTION ステートメント
- 難読化関数は変更できません。
- ALTER INDEX または CREATE INDEX ステートメント
- CREATE INDEX または ALTER INDEX ステートメントでは、XML 索引または VARBINARY 列の索引に対して、PADDED を指定してはなりません。
- 索引が EXCLUDE NULL KEYS を使用して定義されている場合は、CREATE INDEX または ALTER INDEX ステートメントで、NOT NULL として定義されている列を指定してはなりません。
- 索引が EXCLUDE NULL KEYS を使用して定義されている場合は、CREATE INDEX ステートメントで、UNIQUE、BUSINESS_TIME WITHOUT OVERLAPS、XML 索引指定、またはキー式を指定してはなりません。
- 索引がパーティション索引である場合は、CREATE INDEX ステートメントで、EXCLUDE NULL KEYS を指定してはなりません。
- CREATE INDEX ステートメントは、XML 索引の場合は ASC、DESC、あるいは RANDOM を指定することはできません。
- CREATE INDEX ステートメントは、その索引が式ベースの索引の場合は DESC または RANDOM を指定することはできません。
- CREATE INDEX ステートメントは、 EBCDIC 表の Db2® 11 Unicode 列に DESC、PADDED または RANDOM を指定することはできません。
- CREATE INDEX ステートメントは、 式ベースの索引に INCLUDE または CLUSTER を指定することはできません。
- CREATE INDEX ステートメントは、パーティション・キーで BINARY 列または VARBINARY 列を指定することはできません。
- CREATE または ALTER INDEX ステートメントで、TIMESTAMP WITH TIME ZONE として定義されている列を含む索引の ASC、DESC、RANDOM を指定してはなりません。
- CREATE INDEX ステートメントは、空間インデックスの場合は DEFER YES を指定する必要があります。
- CREATE INDEX ステートメントは、宣言されたグローバル一時表の名前を指定することはできません。
- 列には、1 つの空間インデックスのみ作成できます。
- 空間インデックスを BLOB 列または BLOB の特殊タイプの列に作成する場合、BLOB 列を保管する LOB 表スペースが存在している必要があります。
- 空間インデックスは変更できません。
- バージョン付きオブジェクト記述子 (OBD) の 30,000 バイトの内部制限を超えました。この状態は、ALTER INDEX ステートメントによって新しい索引バージョンに変更された場合に発生することがあります。
- CREATE INDEX DSSIZE と CREATE INDEX PART DSSIZE の両方を同じステートメントで指定することはできません。
- ALTER PROCEDURE ステートメント
- 難読化プロシージャーは変更できません。
- ALTER TABLE または CREATE TABLE ステートメント
- VARBINARY 列がユニーク索引の一部になっている場合、ALTER TABLE ステートメントでその VARBINARY 列を BINARY に変更することはできません。
- ALTER TABLE ステートメントで、ADD CLONE 文節にマテリアライズ照会表を指定することはできません。 表を変更する前に、マテリアライズ照会表を基本表に変更してください。
- ALTER TABLE または CREATE TABLE ステートメントは、パーティション・キーで BINARY 列または VARBINARY 列を指定することはできません。
- 以下の両方の条件に該当する場合、ALTER COLUMN SET DATA TYPE 節を持つ ALTER TABLE ステートメントで、新しいデータ・タイプに VARBINARY または BINARY を指定してはなりません。
- 列がパーティション・キー列である。
- 既存のデータ・タイプが CHAR または VARCHAR FOR BIT DATA である。
- マテリアライズ照会表は、ALTER TABLE 用にクローン作成することはできません。
- CREATE TABLE ステートメントの as-result-table 文節に指定された全選択の結果表に、異なる CCSID セットでエンコードされたデータが含まれます。結果表に複数の CCSID セットを使用することはできません。
- バージョン付きオブジェクト記述子 (OBD) の 30000 バイトの内部制限を超えました。この状態は、ALTER TABLE ステートメントの結果として新しい表バージョンまたは索引バージョンになった場合、またはこのステートメントがバージョン付き表に対して実行された場合に起こることがあります。
- この表スペースはユニバーサル表スペースではないため、LOB 列に INLINE LENGTH を使用することはできません。
- ALTER TABLE ステートメントが ADD PERIOD 文節とともに指定されました。列マスクまたは行の許可が表に定義されています。列マスクまたは行の許可が定義されている表に、期間を追加することはできません。
- LIKE 文節に指定された表またはビューには、EBCDIC 表の Db2 11 Unicode 列を含めることができません。
- 表が EBCDIC であり Db2 11 Unicode 列を含む場合、ALTER TABLE ステートメントで ADD PARTITION BY RANGE 文節を指定することはできません。
- 生成式列を定義する ALTER TABLE ステートメントまたは CREATE TABLE ステートメントは、式の結果タイプと同じデータ・タイプを指定しなければなりません。 DATA CHANGE OPERATION として定義されている列の場合、データ・タイプとして CHAR(1) を指定しなければなりません。
- CREATE TABLE ステートメントには、LIKE 節および IN ACCELERATOR 節を含めてはなりません。
- CREATE TABLE ステートメントには、アクセラレーター専用表を参照する LIKE 節を含めてはなりません。
- CREATE TABLE ステートメントには、AS 全選択節および IN ACCELERATOR 節を含めてはなりません。
- CREATE TABLE ステートメントには、全選択がアクセラレーター専用表を参照する AS 全選択節を含めてはなりません。
- CREATE TABLE ステートメントには、マテリアライズ照会定義および IN ACCELERATOR 節を含めてはなりません。
- 表がアクセラレーター専用表の場合、CREATE または ALTER TABLE ステートメントで、EBCDIC 表に Unicode 列を定義してはなりません。
- PAGENUM RELATIVE を指定した CREATE TABLE、または PAGENUM RELATIVE が指定された表スペースには、最小データ・サイズが 3 バイトの行が必要です。
- ALTER TABLE ALTER COLUMN SET DATATYPE ステートメント
- PAGENUM RELATIVE が指定された表内の列のデータ・タイプの変更は、その結果として行の最小データ・サイズが 3 バイト未満になる場合は許可されません。
- ALTER TABLE DROP COLUMN ステートメント
- PAGENUM RELATIVE が指定された表の列のドロップは、その結果として行の最小データ・サイズが 3 バイト未満になる場合は許可されません。
- ALTER TABLESPACE ステートメント
- ALTER TABLESPACE DSSIZE と ALTER TABLESPACE PART DSSIZE の両方を同じステートメントで指定することはできません。
- ALTER TABLESPACE PAGENUM RELATIVE は、表スペース内の表の行の最小データ・サイズが 3 バイト未満の場合は許可されません。
- CREATE GLOBAL TEMPORARY TABLE ステートメント
- LIKE 文節に指定された表またはビューには、EBCDIC 表の Db2 11 Unicode 列を含めることができません。
- DECLARE GLOBAL TEMPORARY TABLE ステートメント
- DECLARE GLOBAL TEMPORARY TABLE ステートメントの as-result-table 文節に指定された全選択の結果表に、異なる CCSID セットでエンコードされたデータが含まれます。EBCDIC および Unicode 以外は、結果表で複数の CCSID セットを使用してはなりません。
- IMPLICITLY HIDDEN 文節は ROWID として定義されている列、あるいは、ROWID に基づく特殊タイプとして定義されている列に指定することはできません。
- BINARY 列または VARBINARY 列をパーティション・キーに指定できません。
- LIKE 文節に指定された表またはビューには、EBCDIC 表の Db2 11 Unicode 列を含めることができません。
- DECLARE GLOBAL TEMPORARY TABLE の LIKE 節で、アクセラレーター専用表を参照してはなりません。
- CREATE FUNCTION ステートメント
- CREATE FUNCTION ステートメントでは、以下のいずれかの項目を含む SQL 表関数の定義を試みてはなりません。
- フィールド・プロシージャーで定義された列を参照する関数本体
- フィールド・プロシージャーで定義された列を参照する RETURNS 節
関連情報: - CREATE MASK ステートメント
- CREATE MASK ステートメントでは、アクセラレーター専用表のマスクを定義してはなりません。関連情報:
- CREATE PERMISSION ステートメント
- CREATE PERMISSION ステートメントでは、アクセラレーター専用表の列許可を定義してはなりません。関連情報:
- CREATE VARIABLE ステートメント
- CREATE VARIABLE ステートメントは、CURRENT TEMPORAL SYSTEM_TIME または CURRENT TEMPORAL BUSINESS_TIME 特殊レジスターのデフォルト値を指定できません。関連情報:
- CREATE VIEW または ALTER VIEW REGENERATE ステートメント
- ビュー定義で参照されるすべてのビューと SQL 関数は、定義されているビューと同じ丸めモードになっている必要があります。丸めモード情報が未定義の SQL 関数は、丸めモード検査中、無視されます。関連情報:
- FETCH ステートメント
- FETCH ステートメントで SQL ルーチン内に WITH CONTINUE あるいは CURRENT CONTINUE を含めることはできません。
関連情報:
- GET DIAGNOSTICS ステートメント
- STACKED キーワードは、外部 SQL ルーチンの GET DIAGNOSTICS ステートメントに指定することはできません。
STACKED キーワードは、ネイティブ SQL ルーチン内でのみサポートされます。関連情報:
- MERGE ステートメント
- ソース表の列が、MERGE ステートメントの変更操作で複数回参照されています。拡張標識が有効である場合は、変更操作でソース表の列を複数回参照してはなりません。変更操作は、更新操作または挿入操作です。EXTENDEDINDICATOR(YES) が使用されるとき、または MERGE ステートメントに WITH EXTENDED INDICATORS 準備属性が指定されたときに、拡張標識が有効になります。
- MERGE ステートメントの ON 節の search-condition には、全選択を含む IN 述部、または全選択を含む限定述部を含めてはなりません。
- MERGE ステートメントの WHEN MATCHED 節または WHEN NOT MATCHED 節の matching-condition には、全選択を含む IN 述部、または全選択を含む限定述部を含めてはなりません。
- 削除操作を含む MERGE ステートメントは、全選択の外部 SELECT 節の FROM 節で data-change-table-reference として使用することはできません。
関連情報:- TRIGGER ステートメント
- CREATE TRIGGER ステートメントで、以下のいずれかのタイプの列が含まれたビューを指定してはなりません。
- ROWID 列
- LOB 列
- XML 列
- ID 列として (直接または間接的に) 定義された列
- セキュリティー・ラベル列
- 行変更タイム・スタンプ列
- 行開始列
- 行終了列
- トランザクション開始 ID 列
- 式
- セット演算子を含む結果表の列
- CREATE TRIGGER ステートメントは、WHEN 節の検索条件でシステム期間テンポラル表を参照してはなりません。
- CREATE [または ALTER] TRIGGER ステートメントは、トリガーの本体でアクセラレーター専用表を参照してはなりません。
- INSTEAD OF 節が指定された CREATE TRIGGER ステートメントは、トリガー本体で、アクセラレーター専用表を参照するビューを参照してはなりません。
- 指定した遷移変数が XML をサポートしていません。
- トリガー・パッケージが SYSTIMESENSITIVE(YES) バインド・オプションを指定して生成されている場合、search-condition でシステム期間テンポラル表を参照してはなりません。
- トリガー本体の CREATE TABLE ステートメントでは、列を LOB または XML として定義してはなりません。
- トリガー本体で PREPARE ステートメントが発行される場合、PREPARE ステートメントのステートメント・ストリングは、ALLOCATE CURSOR ステートメントであってはなりません。
- ALTER TRIGGER (基本) ステートメントでは、SECURED または NOT SECURED 以外のオプションを指定してはなりません。
- ALTER TRIGGER (拡張) ステートメントでは、動的な準備のみ可能です。
- CREATE TRIGGER (拡張) または ALTER TRIGGER (拡張) ステートメントは、静的ステートメントとして処理することはできません。
- 難読化トリガーは変更できません。
関連情報:- CREATE TRIGGER ステートメントで、以下のいずれかのタイプの列が含まれたビューを指定してはなりません。
- UPDATE ステートメント:
- BEFORE UPDATE トリガーが定義されている列のデータを変更する、一部の UPDATE ステートメントでは、特定の環境でこのコードが生じることがあります。
- BEFORE UPDATE TRIGGER ステートメントに、アクセス・パス索引に参加する 1 つ以上の列に対する SET 文節が含まれる場合、BEFORE UPDATE TRIGGER ステートメントを実行すると、行が再び適格になることがあります。この状態は、以下のすべての条件が満たされる場合に発生します。
- Db2 が、更新に適格な行を見つけるために索引アクセス・パスを使用している。
- BEFORE TRIGGER が、行が属する表に存在する。
- BEFORE TRIGGER が、アクセス・パス索引に参加する 1 つ以上の列の値を更新する。
この状態は、検索された更新と位置を指定した更新の両方 (UPDATE WHERE CURRENT OF CURSOR ステートメントを使用する更新) で発生する場合があります。このコードは、更新に関連するデータによって行が適格にならない場合でも、この問題に影響されやすいステートメントに対して出されます。資格の再取得エラーの処理については、『プログラマー応答』を参照してください。
- BEFORE UPDATE TRIGGER ステートメントに、アクセス・パス索引に参加する 1 つ以上の列に対する SET 文節が含まれる場合、BEFORE UPDATE TRIGGER ステートメントを実行すると、行が再び適格になることがあります。この状態は、以下のすべての条件が満たされる場合に発生します。
- SQL ステートメントに関するその他の制約事項:
- SQL ステートメントで参照されるビューおよび SQL 関数は、SQL ステートメントと同じ丸めモードを使用している必要があります。丸めモード情報が未定義のビューおよび SQL 関数は、丸めモード検査中、無視されます。
- 副選択では、OLD TABLE が指定されている場合に、選択リストに XML 列を含めることはできません。
- 副選択に以下のいずれかの演算子が直接含まれている場合、その副選択で RID 組み込み関数および ROW CHANGE TOKEN 式を指定してはなりません。
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- FULL OUTER JOIN
- 以下の条件に該当する場合にのみ、副選択で ROW CHANGE TIMESTAMP 式を指定できます。
- LEFT OUTER JOIN、RIGHT OUTER JOIN、または FULL OUTER JOIN 演算子が副選択に直接含まれている。
- 表指定子が、行変更タイム・スタンプ列を含む基本表を示している。
- フィールド・プロシージャーで定義された列から派生した式を使用して SQL 表関数を呼び出してはなりません。
- SQL 表関数の入力引数に、直接的にまたは式の一部としてスカラー全選択、関数、または列参照が含まれていてはなりません。
- ARRAY_AGG、LISTAGG、または XMLAGG の組み合わせを、同じステートメントで一緒に指定することはできません。
- SQL ステートメント内で UNNEST が使用されており、UNNEST 演算子に対する引数は列への参照を含む配列関数呼び出しです。配列関数呼び出しの引数に、共通表式の列への参照を含めることはできません。
照会または SELECT INTO、INSERT、UPDATE、DELETE、または MERGE ステートメントで、inclusive-exclusive (開始値を含み終了値を除外) BUSINESS_TIME 期間と inclusive-inclusive (開始値と終了値を含む) BUSINESS_TIME 期間の両方を含む表またはビューを参照してはなりません。
DELETE または UPDATE ステートメントで、inclusive-inclusive 期間に対して FROM expression1 TO expression2 節を指定してはなりません。
DELETE または UPDATE ステートメントで、inclusive-exclusive 期間に対して BETWEEN expression1 AND expression2 節を指定してはなりません。
システムの処置
このステートメントを処理することはできません。
プログラマーの応答
構文を訂正し、ステートメントを再実行依頼してください。 以下のエラーの場合、指定されたアクションを実行してください。
- XML データ・タイプによって引き起こされるエラー
- このエラーが XML データ・タイプが原因の場合は、XML データを XML 入力を受け入れるいずれかの関数に入力してください。関数の出力をデータベースに保管するか、それをアプリケーションに戻してください。
- 丸めモードによって引き起こされるエラー
- このエラーが異なる丸めモードが原因で生じた場合は、以下のいずれかのアクションを実行します。
- ビューまたは SQL 関数が、参照している SQL ステートメントとは異なる丸めモードを使用している場合:
- SQL ステートメントを変更するか、有効になっている丸めモードを変更して、参照されるすべてのビューまたは SQL 関数が SQL ステートメントと同じ丸めモードを使用するようにします。新規のビュー、SQL 関数、またはその両方が、SQL ステートメントの丸めモードと一致している必要がある場合があります。
- CREATE VIEW の実行時に、ビューまたは SQL 関数が、参照しているビューとは異なる丸めモードを使用している場合:
- ビュー定義を変更するか、有効になっている丸めモードを変更して、参照されるすべてのビューまたは SQL 関数が、参照しているビューと同じ丸めモードを使用するようにします。新規のビュー、SQL 関数、またはその両方が、参照しているビューの丸めモードと一致している必要がある場合があります。
- ALTER VIEW REGENERATE の実行時に、ビューまたは SQL 関数が、参照しているビューとは異なる丸めモードを使用している場合:
- 有効になっている丸めモードを変更して、参照されるすべてのビューまたは SQL 関数が、参照しているビューと同じ丸めモードを使用するようにします。ALTER VIEW REGENERATE のビューが常に失敗することがあります。その場合は、ビューをドロップしてから、新しいビューまたは SQL 関数を参照する別のビュー定義を使用して再作成する必要があります。
- データの資格の再取得によって生じるエラー
- BEFORE UPDATE TRIGGER ステートメントによって設定されたデータが資格を再取得することにより問題が生じる場合は、以下のいずれかのアクションを実行します。
- トリガーによって変更される列が UPDATE ステートメント自体によっても変更されるかどうかを確認する。UPDATE ステートメントを変更して、BEFORE UPDATE TRIGGER が変更する各列に column-name=column-name のタイプのダミー文節が含まれるようにします。
- ヒントと再バインドして、RIDLIST アクセス・パスが同じ索引を使用するようにする。
- OBDREC のサイズが原因で発生したエラー
- OBDREC のサイズが 30,000 バイトを超えている場合は、可変長列があればそのデフォルト値のサイズを小さくすることによって、OBD 内の一部のスペースをレクラメーション処理できる可能性があります。
SQLSTATE
42997
![変更の終わり](KC_ROOT/images/ddita/deltaend.gif)