2.5 ランダム値を生成するランダム・データ・リダクション
ランダム・データ・リダクションでは、値全体がランダムな値に置換されてリダクションされます。
問合せの結果セットに表示されるリダクションされた値は、アプリケーション・ユーザーが問合せを実行するたびに、ランダムに変更されます。
このタイプのリダクションは、データがリダクションされていることを明らかにしたくない場合に便利です。ランダム・データか実際のデータかの区別が難しい、数値および日時データ型の場合に特に適しています。
ランダム値として表示される出力は、次のように、リダクションされた列のデータ型によって異なります。
-
文字データ型: ランダムな出力は、文字が混合されています(たとえば、
HTU[G{\pjkEWcK
)。CHAR
とVARCHAR2
のデータ型では、次に示すように動作が異なります。-
CHARデータ型: リダクションされた出力の文字セットは、常に列の文字セットと同一になります。リダクションされた出力のバイト長は、常に列定義の長さ(つまり、表の作成時に指定した列の長さ)と同一になります。たとえば、列が
CHAR(20)
である場合、ユーザー問合せのリダクションされた出力には、ランダムな20文字が提供されます。 -
VARCHAR2データ型:
VARCHAR
データ型のランダム・リダクションでは、リダクションされた出力の文字セットは、常に列の文字セットと同一になります。リダクションされた出力の長さは、列の実際のデータの長さに基づいて制限されます。実際のデータの長さを超える文字は表示されません。たとえば、列がVARCHAR2(20)
で、リダクションされる行に長さ12の実際のデータが含まれている場合、その行に対するユーザー問合せのリダクションされた出力には、ランダムな12文字(20文字ではない)が提供されます。
-
-
数値データ型: 実際の各数値は、ランダムな非負数に置換されてリダクションされます。このリダクション結果は、実際のデータの精度を超えないランダムな数値になります。たとえば、数値
987654321
は、数値12345678
、13579
、0
または987654320
のいずれかに置換されてリダクションされます。数値987654321
、99987654321
または-1
に置換されることはありません。数値-123
は、数値122
、0
または83
に置換されてリダクションされますが、数値123
、1123
または-2
のいずれかに置換されることはありません。前述の例の唯一の例外は、実際の値が-1から9の間の整数である場合です。この場合、実際のデータは、ランダムな非負整数であるmodulo 10に置換されてリダクションされます。
-
日時データ型: 日付データ型の値がランダム・データ・リダクションを使用してリダクションされる場合、Oracle Databaseには、実際のデータの日付と異なるランダムな日付が常に表示されます。
ランダム・リダクションを使用する設定は、次のとおりです。
function_type => DBMS_REDACT.RANDOM
関連トピック