6.1 Oracle Data Redactionの一般的な使用上の制限事項
Oracle Data Redactionを使用するためには、使用上の制限事項を理解しておくことが重要です。
- SQL文において
GROUP BY
句とSELECT
リストで使用される、次の式または関数に、リダクションされる列を含めないでください。- JSON演算子
- XML関数
- カーソル式でのSQL式
- コンストラクタ関数
- ユーザー定義演算子
- PL/SQL関数
ORA-00979: GROUP BYの式ではありません。
」のエラーが発生します。これが発生するのは、データ・リダクションによってSELECT
リスト内のそれらの式または関数を変更する必要があるが、これが原因で、GROUP BY
句を処理するときにそれが見つからなくなる(その時点ではデータ・リダクションによって更新されていない)ためです。その結果、この予期せぬエラー・メッセージが表示されます。 - SQL文において
DISTINCT
句とORDER BY
句の両方で使用される、次のSQL式または関数に、リダクションされる列を含めないでください。- XML関数
- カーソル式
- コンストラクタ関数
- ユーザー定義演算子
- PL/SQL関数
ORA-01791: SELECT式が無効です。
」エラーが発生します。これが発生するのは、内部でデータ・リダクションによってSELECT
リスト内のその式を変更する必要があるが、これが原因で、ORDER BY
句を処理するときにそれが見つからなくなるためです。その結果、この予期せぬエラー・メッセージが表示されます。 -
Oracleでは、仮想列に対するデータ・リダクション・ポリシーの追加はサポートされていません。
Oracleでは仮想列のベース列にデータ・リダクション・ポリシーを設定することはサポートされていますが、仮想列自体にデータ・リダクション・ポリシーを適用することはできません。
SELECT COLUMN_ID, COLUMN_NAME, VIRTUAL_COLUMN FROM DBA_TAB_COLS WHERE TABLE_NAME = 'table_name_that_you_attempted_to_redact' AND VIRTUAL_COLUMN = 'YES' ORDER BY COLUMN_ID;