Consider the following guidelines when you use a dynamic lookup cache:
You must set
On Multiple Matches
property to Report Error when you use a dynamic lookup cache. To reset the property, change the dynamic lookup to a static lookup, change the property, and then change the static lookup to a dynamic lookup.
You cannot share the cache between a dynamic Lookup transformation and static Lookup transformation in the same target load order group.
You can enable a dynamic lookup cache for a relational or flat file lookup.
The Lookup transformation must be a connected transformation.
You can use a persistent or a non-persistent cache.
If the dynamic cache is not persistent, the Integration Service always rebuilds the cache from the database, even if you do not enable
Re-cache from Lookup Source
.
You can only create an equality lookup condition. You cannot look up a range of data in a dynamic cache.
You must associate each lookup port that is not in the lookup condition with an input port, sequence ID, or associated expression.
Use a Router transformation to pass rows to the cached target when the NewLookupRow value equals one or two.
Use the Router transformation to drop rows when the NewLookupRow value equals zero. Or, you can output the rows to a different target.
Verify that the Integration Service outputs the same values to the target that it writes to the lookup cache. When you choose to output new values on update, only connect lookup/output ports to the target table instead of the input/output ports. When you choose to output old values on update, add an Expression transformation after the Lookup transformation and before the Router transformation. Add output ports in the Expression transformation for each port in the target table and create expressions to ensure you do not output null input values to the target.
When you use a lookup SQL override, map the correct columns to the appropriate targets for lookup.
When you add a WHERE clause to the lookup SQL override, use a Filter transformation before the Lookup transformation. This ensures that the Integration Service inserts rows in the dynamic cache and target table that match the WHERE clause.
When you configure a reusable Lookup transformation to use a dynamic cache, you cannot edit the condition or disable the
Dynamic Lookup Cache
property in a mapping.
Use Update Strategy transformations after the Lookup transformation to flag the rows for insert or update for the target.
Use an Update Strategy transformation before the Lookup transformation to define some or all rows as update if you want to use the Update Else Insert property in the Lookup transformation.