Age privacy provider

Use the age privacy provider to mask date values.

The aging process can increment or decrement a date value. Aging can be specific to the number of years, months, weeks, or days. Optionally, aging can be a combination of these units. Aging can also be based upon a specific 4-digit year value.

Starting with release 11.3.0.8, the incrementing values can be randomized.

The provider masks only dates with years from 1 A.D. to 9999 A.D.

Examples

Source format
The following example ages dates one month and uses the YYYY/MM/DD format for the source value.
pro=age, mon=1, srcdf="%YYYY/%MM/%DD", flddef1=(name=agevarchar, dt=datetime_szdt=date)

This example uses the following parameters:

MON=1
This parameter ages the date by adding one month.
SRCDF="%YYYY/%MM/%DD"

This parameter specifies the date-time format by specifying the YYYY/MM/DD format for the source value. The same format will be used for the destination.

Random date
The following example (available starting in release 11.3.0.8) ages the month by up to two months in either direction (earlier or later). The number of months is determined randomly within this range. The day is changed to a random day in the resulting month.
provider=age, method=random, month=2, day=any, srcdf="%YYYY-%MM-%DD", 
FLDDEF1=(NAME=xyzdate, dt=datetime_sz)

This example uses the following parameters:

method=random
This parameter indicates the aging is to be done randomly.
month=2
This parameter indicates the maximum number of months by which the date will be aged (up or down). If, for example, the input date in in April, the masked date will be in February, March, May, or June.
day=any
This parameter indicates the day should be changed to a random day in the month. If, for example, the masked date is in February in a non-leap year, the day will be set between 1 and 28 (inclusive).
srcdf="%YYYY-%MM-%DD"
This parameter specifies the date-time format by specifying the YYYY/MM/DD format for the source value. The same format will be used for the destination.

Syntax

The age privacy provider uses the following syntax:

Masking parameters
PROVIDER = AGE  ,
	[ METHOD = { REPEATABLE | RANDOM } ] ,    (Starting with release 11.3.0.8)
Formatting parameters
SRC_DATE_FORMAT = “src-date-format-expression“  ,
	[ DST_DATE_FORMAT = “dest-date-format-expression“ ]  ,
Aging parameters
	[ YEAR = n-years | “specific-year“  } ]  ,
	[ MONTH = n-months ]  ,
	[ WEEK = n-weeks ]  ,
	[ DAY = n-days | ANY ]  ,    (ANY is allowed starting with release 11.3.0.8)
	[ PIVOT =  century-pivot-value ]  ,
Data definition parameters
	FLDDEFn = ( NAME = field-name,    
		DATATYPE = datatype-value, 
		[ PRECISION = field-precision-value ], 
		[ SCALE = field-scale-value ],    
		[ LENGTH = field-length-value ],
		[ CODEPAGE = codepage-value ],
		[ CPTYPE = { DB2ZOS |DB2LUW | ORACLE |SYBASE |ODBC | INFORMIX |NETEZZA |SQLSERVER |TERADATA |ANY |NONE } ] ) , 
	[ DISCARDLIMIT = discard-limit-value ] ,
	[ CODEPAGE = codepage-value ]  ,
	[ CPTYPE = { DB2ZOS | DB2LUW | ORACLE | SYBASE | ODBC | INFORMIX |
		     NETEZZA | SQLSERVER | TERADATA | ANY | NONE  } ]

Masking parameters

Parameters that determine how to mask data.

METHOD (or MTD)
Note: METHOD is allowed starting with release 11.3.0.8.
The masking method type. Enter one of the following options:
REPEATABLE (or REP)
Default. Generates a date based on the old date in a repeatable manner using the supplied aging parameters. This duplicates the behavior of the pre-release 11.3.0.8 AGE provider.
RANDOM (or RAN)
Generates a date by using a random masking algorithm, controlled by the combination of the YEAR, MONTH, WEEK and DAY parameters. The generated date will never be the same as the source date.
PROVIDER (or PRO)
Required. Enter the provider name, AGE.
Note: The PRO parameter must be first in the masking string. All other parameters can appear in any order.

Formatting parameters

Parameters that determine how to format dates.

SRC_DATE_FORMAT (or SRCDF)
Required. Specifies, within enclosing double quotation marks, the format of the date string values in the source field.
Use any of the following format specifiers for formatting the date-time strings. All specifiers start with a percent (%) sign.
Year
  • %YYYY
  • %YY
Month
  • %MONTH
  • %MMM
  • %MM
Day
  • %DD
Time
  • %HH
  • %MI
  • %SS
  • %HH24
Fraction of a second
  • %FFFFFF
  • %FFFFF
  • %FFFF
  • %FFF
  • %FF
  • %F
AM/PM
  • %PM

For example, to format a date string as four-digit year, three-character month, two-digit date with dash-type (-) separators, the format string would be “%YYYY-%MMM-%DD”.

DST_DATE_FORMAT (or DSTDF)
Specifies, within enclosing double quotation marks, the format of the output date string values in the destination field.
Use any of the following format specifiers for formatting the date-time strings. All specifiers start with a percent (%) sign. By default, the source date format is used as the destination date format if the source data type is CHAR.
Year
  • %YYYY
  • %YY
Month
  • %MONTH
  • %MMM
  • %MM
Day
  • %DD
Time
  • %HH
  • %MI
  • %SS
  • %HH24
Fraction of a second
  • %FFFFFF
  • %FFFFF
  • %FFFF
  • %FFF
  • %FF
  • %F
AM/PM
  • %PM

For example, to format a date string as a four-digit year, three-character month, two-digit date with dash-type (-) separators, the format string would be “%YYYY-%MMM-%DD”.

Aging parameters

Parameters that determine how to age dates.

YEAR (or YR)
For METHOD=REPEATABLE and pre-release 11.3.0.8 default behavior:
Specifies either the number of years to increment or decrement a source date value or a specific year to use for a date value. Enter one of the following options:
n-years
Increments or decrements the source date value by a specific number of years. A positive value increments the year, and a negative value decrements the year. Enter an integer value within the range -2500 to +1581. The plus sign is optional.
"specific-year"
Specifies, within enclosing double quotation marks, a four-digit year value to replace the source year value. The other parts of the date value and format remain the same. The valid values are “1582” to “3999”.

YR=specific-year is not compatible with the parameters MONTH, WEEK, and DAY.

For METHOD=RANDOM (only allowed in release 11.3.0.8 or higher):
Specifies the maximum number by which to vary the year. For example, YEAR=5 would randomly either subtract or add a value between 1 and 5 (inclusive).
MONTH (or MON)
For METHOD=REPEATABLE and pre-release 11.3.0.8 default behavior:
Increments or decrements the source date value by a specific number of months. A positive value increments the month, and a negative value decrements the month. Enter an integer value within the range -30000 to +30000. The plus sign is optional.

MON is not compatible with the parameter YR=specific-year.

For METHOD=RANDOM (only allowed in release 11.3.0.8 or higher):
Specifies the maximum number by which to vary the month. For example, MONTH=5 would randomly either subtract or add a value between 1 and 5 (inclusive).
WEEK (or WK)
For METHOD=REPEATABLE and pre-release 11.3.0.8 default behavior:
Increments or decrements the source date value by a specific number of weeks. A positive value increments the weeks, and a negative value decrements the weeks. Enter an integer value within the range -30000 to +30000. The plus sign is optional.

WK is not compatible with the parameter YR=specific-year.

For METHOD=RANDOM (only allowed in release 11.3.0.8 or higher):
Specifies the maximum number by which to vary the week. For example, WEEK=5 would randomly either subtract or add a value between 1 and 5 (inclusive).
DAY
For METHOD=REPEATABLE and pre-release 11.3.0.8 default behavior:
Increments or decrements the source date value by a specific number of days. A positive value increments the number of days, and a negative value decrements the number of days. Enter an integer value within the range -30000 to +30000. The plus sign is optional.

DAY is not compatible with the parameter YR=specific-year.

For METHOD=RANDOM (only allowed in release 11.3.0.8 or higher):
Enter one of the following:
  • An integer that specifies the maximum number by which to vary the day. For example, DAY=5 would randomly either subtract or add a value between 1 and 5 (inclusive).
  • ANY: DAY=ANY will result in a randomly selected day of the month.
PIVOT (or PIV)
Specifies the appropriate century for source dates with two-digit years. Enter a value within the range 0 to 99. The default value is 65. The following rules apply to PIV:
  • All two-digit years equal to or greater than the PIV value are placed in the 20th century (19xx).
  • All two-digit years less than the PIV value are placed in the 21st century (20xx).

Data definition parameters

Parameters for defining source and target data. For further information see, supported data types.

FLDDEFn
Required. Specifies the attributes of input values to use for processing. See Field definition parameter.
DISCARDLIMIT (or DLIM)
Specifies the number of failed rows to discard before the provider stops processing.
CODEPAGE (or CP)
An integer value that specifies the codepage or character-set identifier of the source fields. The default is UTF-8. The CP parameter within the FLDDEFn parameter overrides this value.
CPTYPE (or CPT)
The codepage type of the source fields. The CPT parameter within the FLDDEFn parameter overrides this value.

When the origin of the data is DBMS-specific but not tied to any one DBMS, specify the value as ANY. When the origin of the data is from a non-DBMS source, specify the value as NONE. As there are no DBMS-specific code pages for Netezza®, a specification of NONE is implied when Netezza is specified.

Enter one of the following values:

Value Description
DBZ (or DB2zOS) DB2® for z/OS®
DB2 (or DB2LUW) DB2 for Linux™, UNIX™, and Windows
IFX (or INFORMIX) Informix®
MSS (or SQLSERVER) Microsoft™ SQL Server
NZ or NETEZZA Netezza
ODBC ODBC
ORA (or ORACLE) Oracle
SYB (or SYBASE) Sybase
TD or TERADATA Teradata
ANY Any DBMS
NONE No DBMS

Supported data types

The age privacy provider supports the following data types for source and destination fields:

ODPP equivalent Description
DATETIME_CHAR A fixed size character data value that is left justified with space padded and contains date-time values.
DATETIME_VARCHAR Character data starting with a short integer value that indicates the length, in bytes, of the character data to follow.
DATETIME_WCHAR A fixed size wide character data value that is left-justified with space padded and contains date-time values.
DATETIME_WVARCHAR Wide Character data starting with a short integer value that indicates the length, in bytes, of the character data to follow.
DATETIME_SZ Character data string which is terminated by a NULL character.
DATETIME_WSZ Wide character data string which is terminated by a NULL character.
DATE A data type that is used when the source value is a ODPP_ODBC_DATE structure of the Optim™ data masking API.
TIMESTAMP A data type that is used when the source value is a ODPP_ODBC_TIMESTAMP structure of the Optim™ data masking API.

Starting with release 11.3.0.8, several datatypes that are used in other privacy providers are automatically mapped to the appropriate DATETIME_xxxx datatype, as shown in the table below. For example, DATATYPE=CHAR and DATATYPE=DATETIME_CHAR are equivalent.

Datatype Equivalent to
CHAR DATETIME_CHAR
VARCHAR DATETIME_VARCHAR
WCHAR DATETIME_WCHAR
WVARCHAR DATETIME_WVARCHAR
VARCHAR_SZ DATETIME_SZ
VVARCHAR_SZ DATETIME_WSZ