TRANS CCN Function
Use the TRANS CCN function to generate a valid and unique credit card number (CCN). By default, TRANS CCN algorithmically generates a consistently altered CCN based on the source CCN. TRANS CCN can also generate a random value when the source data does not have a CCN value or when there is no need for transforming the source CCN in a consistent manner.
A CCN, as defined by ISO 7812, consists of a 6-digit issuer identifier followed by a variable length account number and a single check digit as the final number. The check digit verifies the accuracy of the CCN and is generated by passing the issuer identifier and account numbers through the Luhn algorithm. The maximum length of a CCN is 19 digits.
The default processing method generates a CCN by including the first 4 digits of the issuer identifier from the source CCN and altering the remaining 2 digits of the issuer identifier number and the account number based on the source CCN. A valid check digit is also assigned.
The random processing method generates a CCN that can include the first 4 digits of the source issuer identifier number or an issuer identifier number assigned to American Express, Discover, MasterCard, or VISA. A valid check digit is also assigned. If the first four digits of a source issuer identifier number are included, the first account number based on those digits will begin with 1, and for each additional CCN that uses those digits, the account number will be incremented by 1.
The syntax of TRANS CCN is:
TRANS CCN [( ‘[=flag] [sourcecol] [preserve=invalid]' )]
- flag
- Specify an option flag to generate a random CCN.
- n
- Generate a random CCN that is not based on a source value and includes an issuer identifier number assigned to American Express, Discover, MasterCard, or VISA.
- r
- Generate a random CCN that includes the first 4 digits of the source issuer identifier number.
- sourcecol
- The source column name. If a source column name
is not specified, the destination column name is used.
If a source column name is not specified and the destination column name does not match a column name in the source table, an error will occur during processing.
- preserve=invalid
- If the source column contains an invalid CCN, do not replace it with a generated value. The source column value will be used in the destination column.
Data Types Allowed
The following source and destination data types are permitted:
- CHAR
- The column length must be from 13 to 256 characters.
- VARCHAR
- The column length must be from 13 to 254 characters.
- DECIMAL
- The precision of the column must be from 13 to 254 and the scale 0.
If a source or destination column does not adhere to these restrictions, an error message occurs.
Destination Processing Rules
The following rules apply to the destination CCN value, according to the destination data type or value:
- CHAR
- If the source value is spaces or a zero-length VARCHAR, the destination value will be set to spaces.
- VARCHAR
- If the source value is spaces or a zero-length VARCHAR, the destination length will be 0.
- DECIMAL
- If the source value is 0, the destination value will be 0.
- NULL
- If the source value is NULL, the destination value will be NULL.
Skipped Rows
The following conditions may cause a source row to be skipped and not written to the destination:
- The source value is NULL, and the destination column does not allow a NULL value.
- The source value is less than 13 characters, contains a non-numeric character, is too large, or has an incorrect check digit.
- The source value length is not valid for the credit card issuer.
- The source value cannot be converted to a format TRANS CCN supports.
Error Messages
The following error messages may be issued:
- CCN01
- Parm on Col ccccc ("ppp") is invalid
- Explanation
- The indicated column contains a TRANS function with a processing option flag that is not valid.
- User Action
- Ensure that the TRANS function on the column specified uses a valid processing option flag (n, r, 6).
- CCN02
- Col ccccc not on source
- Explanation
- The column that was entered as a sourcecol parameter or the destination column name (if the sourcecol parameter was omitted) was not found on the source table.
- User Action
- Check the source table and resolve any discrepancies or missing columns.
- CCN03
- Source Col ccccc-aaa invalid
- Explanation
- The format of the source column is not supported because the attribute indicated is not valid.
- User Action
- Check the source column and ensure the values for type, length, precision, and scale are appropriate.
- CCN04
- Dest Col ccccc-aaa invalid
- Explanation
- The format of the destination column is not supported because the indicated attribute is not valid.
- User Action
- Check the destination column to ensure the values for type, length, precision, and scale are appropriate.
- CCN05
- Get col ccccc data-rc=nnn
- Explanation
- An unexpected internal error has occurred while getting the value from the source column.
- User Action
- Check the values of the source and destination columns and ensure the values for type, length, precision, and scale are appropriate. If the problem persists, contact IBM® Software Support.
- CCN08
- Put col ccccc data-rc=nnn
- Explanation
- An unexpected internal error has occurred while setting the value on the destination column.
- User Action
- Check the values of the source and destination columns and ensure the values for type, length, precision, and scale are appropriate. If the problem persists, contact IBM Software Support.
If any other errors occur, contact Technical Support.
Example 1
The following example uses a source column name (CREDITCARD) that differs from the destination column and generates a random CCN not based on the source value:
TRANS CCN (‘=n CREDITCARD')
Example 2
The following example uses a source column name (CREDITCARD) that differs from the destination column and generates a CCN using the default processing method:
TRANS CCN (‘CREDITCARD')