Field Expressions
You can transform the source data before loading it into the target. When you configure field mappings, you can specify an expression for each field mapping. You can map multiple source fields to the same target field. For example, you map SourceFieldA and SourceFieldB to TargetFieldC.
Informatica Cloud might suggest operations when you map multiple source fields to a single target field. For example, if you map multiple text fields to a target text field, Informatica Cloud concatenates the source text fields by default. You can change the default expression.
Informatica Cloud provides a transformation language that includes SQL-like functions to transform source data. Use these functions to write expressions, which modify data or test whether data matches the conditions that you specify.
To create a field expression, perform the following steps in the task wizard:
1. In the Field Mappings page, select the target field for which you want to add an expression.
2. Click Add or Edit Expression.
By default, the Field Expression dialog box shows the source field as the expression, which indicates that the target contains the same value as the source.
3. Enter the new field expression.
4. Click Validate Mapping to validate the field mappings.
5. Click Save.
Validating Expressions in Field Mappings
Use the following rules and guidelines when you validate an expression in a field mapping:
- •When you validate mappings, Informatica Cloud performs the following validations:
- - Verifies that the source and target fields in the task exist in the source or target. If the field does not exist, an error appears.
- - Verifies that all column datatypes are string and all field expressions contain string operations when the source and target are flat files.
- - Verifies that the correct parameters are used for each function and that the function is valid.
- •The expression validator does not perform case-sensitive checks on field names.
- •The expression validator verifies that the datatype of a field in an expression matches the datatype expected by the containing function. However, the expression validator does not check for incompatible datatypes between the following sets of objects:
- - Source and target fields of tasks.
- - Source field in a lookup condition and the lookup field.
- - Output of an expression or lookup and the target field.
The expression or lookup with these incompatible datatypes may validate successfully, but, at runtime, the task fails and an error appears.
- •If you map a string source field to a number target field, the validation succeeds. Informatica Cloud tries to convert the string to a number using the atoi (ASCII to Integer) C function.
- •The expression validator does not validate lookups.
Transformation Language Components for Expressions
The transformation language includes the following components to create simple or complex expressions:
- •Fields. Use the name of a source field to refer to the value of the field.
- •Literals. Use numeric or string literals to refer to specific values.
- •Functions. Use these SQL-like functions to change data in a task.
- •Operators. Use transformation operators to create expressions to perform mathematical computations, combine data, or compare data.
- •Constants. Use the predefined constants to reference values that remain constant, such as TRUE.
Expression Syntax
You can create a simple expression that only contains a field, such as ORDERS, or a numeric literal, such as 10. You can also write complex expressions that include functions nested within functions, or combine different fields using the transformation language operators.
Note: Although the transformation language is based on standard SQL, there are differences between the two languages.
String and Numeric Literals
You can include numeric or string literals.
Enclose string literals within single quotation marks. For example:
'Alice Davis'
String literals are case sensitive and can contain any character except a single quotation mark. For example, the following string is not allowed:
'Joan's car'
To return a string containing a single quotation mark, use the CHR function:
'Joan' || CHR(39) || 's car'
Do not use single quotation marks with numeric literals. Just enter the number you want to include. For example:
.05
or
$$Sales_Tax
Rules and Guidelines for Expressions
Use the following rules and guidelines when you write expressions:
- •For each source field, you can perform a lookup or create an expression. You cannot do both.
- •You cannot use strings in numeric expressions.
For example, the expression 1 + '1' is not valid because you can only perform addition on numeric datatypes. You cannot add an integer and a string.
- •You cannot use strings as numeric parameters.
For example, the expression SUBSTR(TEXT_VAL, '1', 10) is not valid because the SUBSTR function requires an integer value, not a string, as the start position.
- •You cannot mix datatypes when using comparison operators.
For example, the expression 123.4 = '123.4' is not valid because it compares a decimal value with a string.
- •You can pass a value from a field, literal string or number, or the results of another expression.
- •Separate each argument in a function with a comma.
- •Except for literals, the transformation language is not case sensitive.
- •The colon (:), comma (,), and period (.) have special meaning and should be used only to specify syntax.
- •Informatica Cloud tasks treat a dash (-) as a minus operator.
- •If you pass a literal value to a function, enclose literal strings within single quotation marks. Do not use quotation marks for literal numbers. Informatica Cloud tasks treat any string value enclosed in single quotation marks as a character string.
- •Do not use quotation marks to designate fields.
- •You can nest multiple functions within an expression. Informatica Cloud tasks evaluate the expression starting with the innermost function.
Adding Comments to Expressions
You can use the following comment specifiers to insert comments in expressions:
- •Two dashes:
-- These are comments
- •Two forward slashes:
// These are comments
Informatica Cloud tasks ignore all text on a line preceded by comment specifiers. For example, to concatenate two strings, enter the following expression with comments in the middle of the expression:
-- This expression concatenates first and last names for customers:
FIRST_NAME -- First names from the CUST table
|| // Concat symbol
LAST_NAME // Last names from the CUST table
// Joe Smith Aug 18 1998
Informatica Cloud tasks ignore the comments and evaluates the expression as follows:
FIRST_NAME || LAST_NAME
You cannot continue a comment to a new line:
-- This expression concatenates first and last names for customers:
FIRST_NAME -- First names from the CUST table
|| // Concat symbol
LAST_NAME // Last names from the CUST table
Joe Smith Aug 18 1998
In this case, Informatica Cloud tasks do not validate the expression because the last line is not a valid expression.
Reserved Words
Some keywords, such as constants, operators, and system variables, are reserved for specific functions. These include:
- •:EXT
- •:INFA
- •:LKP
- •:MCR
- •:SD
- •:SEQ
- •:SP
- •:TD
- •AND
- •DD_DELETE
- •DD_INSERT
- •DD_REJECT
- •DD_UPDATE
- •FALSE
- •NOT
- •NULL
- •OR
- •PROC_RESULT
- •SESSSTARTTIME
- •SPOUTPUT
- •SYSDATE
- •TRUE
- •WORKFLOWSTARTTIME
The following words are reserved for Informatica Cloud:
- •ABORTED
- •DISABLED
- •FAILED
- •NOTSTARTED
- •STARTED
- •STOPPED
- •SUCCEEDED
Note: You cannot use a reserved word to name a field. Reserved words have predefined meanings in expressions.