-20478 THE STATEMENT CANNOT BE PROCESSED BECAUSE COLUMN MASK mask-name (DEFINED FOR COLUMN column-name) EXISTS AND THE COLUMN MASK CANNOT BE APPLIED OR THE DEFINITION OF THE MASK CONFLICTS WITH THE REQUESTED STATEMENT. REASON CODE reason-code.
説明
列に対して定義されている列マスクとの競合のため、ステートメントを処理できませんでした。
- mask-name
- 列マスクの名前。
- column-name
- 列の名前。
- reason-code
- 以下のいずれかの値で示される、メッセージまたは SQL コードの理由。
- 1
- 選択の結果表は、以下のいずれかのセット演算子を使用するセット演算から得られます。
- EXCEPT ALL
- EXCEPT DISTINCT
- INTERSECT ALL
- INTERSECT DISTINCT
- 2
- スカラー全選択の選択リストで列が参照されているか、またはスカラー全選択式の結果が以下のいずれかのセット演算子から得られます。
- EXCEPT ALL
- EXCEPT DISTINCT
- INTERSECT ALL
- INTERSECT DISTINCT
- 20
- 再帰的共通表式から結果表が得られ、再帰的共通表式の全選択にこの列が指定されています。
- 21
- 選択リストの列が、マスクが定義されている列から得られるデータ変更ステートメントの INCLUDE 列です。このコンテキストでは、列マスクを適用できません。
- 22
- 表関数から結果表が導き出され、この表関数の入力引数として列が指定されていました。
- 23
- 選択リストの列が OLAP 指定から列が導き出され、この列が、OLAP 指定のパーティション化式またはソート・キー式で参照されています。
- 24
- 列が、CASE 式の WHEN 文節で参照されています。
- 26
- 列が、キーワード DISTINCT が指定された集約関数で参照されています。
- 27
- ARRAY_AGG、LISTAGG、PERCENTILE_CONT、または PERCENTILE_DISC MEDIAN のソート・キー式が、列マスクが定義されている列を参照しています。
- 30
- 挿入操作または更新操作で使用されるマスク値が、このメッセージで識別されているマスクおよび列から返されたものであり、列マスク定義の THEN 文節または ELSE 文節に指定されていた式が、列の単純参照ではありません。
列アクセス制御が活動化されているオブジェクト表の場合、挿入操作または更新操作では、列マスク定義の戻り式は、このマスクが定義されている列への単純参照でなければなりません。
- 31
- 照会に GROUPING SETS、CUBE または ROLLUP 文節が含まれています。
システムの処置
このステートメントを処理することはできません。
プログラマーの応答
アプリケーションで使用されているアプリケーション互換性値を調べて、正しく設定されていることを確認してください。ステートメントの動作は、アプリケーション互換性レベルに基づいて変わる場合があります。
reason-code の値に対応したアクションを実行し、ステートメントを再発行してください。
- 1
- 選択リストの列を参照しないようにするか、またはこのコンテキストでセット演算を使用しないでください。
- 2
- スカラー全選択式の選択リストの列を参照しないようにするか、またはこのコンテキストでスカラー全選択式の結果を得るためにセット演算子を使用しないでください。
- 20
- 再帰的共通表式の列への参照を選択リストから削除するか、またはこのコンテキストで再帰的共通表式を使用しないようにしてください。
- 21
- 選択リストから INCLUDE 列を削除するか、または列名から INCLUDE 列を導出しないでください。
- 22
- この表関数を参照しないようにするか、または表関数の入力として列を指定しないでください。
- 23
- OLAP 式の列を参照しないようにするか、またはこのコンテキストで OLAP 式を使用しないでください。
- 24
- CASE 式の列に対する参照を削除するように照会を変更するか、またはこのコンテキストで CASE 式を参照しないでください。
- 26
- 列への参照を集約関数の定義から削除するか、またはこのコンテキストで DISTINCT 文節を指定しないようにしてください。
- 30
- ステートメントを変更して挿入操作または更新操作での列への参照を削除するか、またはセキュリティー管理者に連絡し、オブジェクト表からの列アクセス制御を非活動化するか、列マスク定義の戻り式を変更するように依頼してください。
- 31
- GROUPING SETS、CUBE または ROLLUP 文節を照会から削除します。
SQLSTATE
428HD