4.2 ネストした関数、インライン・ビューおよびWHERE句でのOracle Data Redaction

Oracle Data Redactionは、ネストした関数、インライン・ビューおよびWHERE句に影響を与えます。

  • ネストした関数は、実際のデータに対して機能します。ただし、次の場合は例外であり、リダクションされたデータに対して機能します:
    • JSON関数
    • XML関数
    • カーソル式でのSQL式
    • コンストラクタ関数
    • PL/SQL関数
    • ユーザー定義演算子
    • ユーザー定義の集計
    例:
    SELECT SUM(AVG(TO_NUMBER ((X)))
    FROM HR.EMPLOYEES
        WHERE .....
    この関数は列X内の実際のデータに対して機能し、最も内側から外側へと向かう順序で実行されますが、SQL式の結果は、そのSQL式内にリダクションされる列が含まれていれば、完全リダクションを使用してリダクションされます。これは、関数内でリダクションされる列が複数指定されておりリダクションされる各列のファンクション・タイプが異なる場合に、式の結果をリダクションするために使用するリダクション・タイプについて混乱が生じないようにするためです。
  • インライン・ビューは、最も外側からリダクションされます。次の例を参照してください
    SELECT XYZ … 
        AS SELECT A… 
        AS SELECT B… 
        AS SELECT C…
    SELECT CSELECT BおよびSELECT Aの実行後に、SELECT XYZのみがリダクションされます。
  • WHERE句はリダクションされません。Oracle Data Redactionでは、SELECTリスト内の列のデータのみがリダクションされます。