5.7 Oracle Data Redactionと、データ・リダクション・ポリシーで保護されている列に対するカーソル式問合せ

Oracle Data Redactionポリシーで保護されている列を選択する複数のSQL文の間のUNION句があるカーソル式問合せでは、返される行が少なくなる場合があります。

これが起こるのは、まずその列に対してリダクションが実行された後に、SELECT文からのリダクション済データにUNION句が適用されるためです。

この問題を回避するには、問合せを書き直して、UNION操作がリダクションの前に実行されるようにインライン・ビューを含めます。たとえば、次の問合せを考えてみます:

SELECT cursor(SELECT sensitive_column FROM table_name
              UNION
              SELECT sensitive_column FROM table_name);

次のように問合せを書き直します:

SELECT cursor(SELECT sensitive_column FROM
    (SELECT sensitive_column FROM table_name
    UNION
    SELECT sensitive_column FROM table_name));