CMN_1650 A duplicate row was attempted to be inserted into a dynamic lookup cache Dynamic lookup error.
Scenario:
I have 2 ports going through a dynamic lookup, and then to a router. In
the router it is a simple
case of inserting new target rows
(NewRowLookup=1) or rejecting existing rows (NewRowLookup=0).
However, when I run the session I'm getting the error:
"CMN_1650 A duplicate row was attempted to be inserted into a dynamic lookup cache Dynamic lookup error. The dynamic lookup cache only supports unique condition keys."
I thought that I was bringing through duplicate values so I put a distinct on the SQ. There is also a not null filter on both ports.
However, whilst investigating the initial error that is logged for a specific pair of values from the source, there is only 1 set of them (no duplicates). The pair exists on the target so surely should just return from the dynamic lookup newrowlookup=0.
Is this some kind of persistent data in the cache that is causing this to think that it is duplicate data? I haven't got the persistent cache or recache from database flags checked.
However, when I run the session I'm getting the error:
"CMN_1650 A duplicate row was attempted to be inserted into a dynamic lookup cache Dynamic lookup error. The dynamic lookup cache only supports unique condition keys."
I thought that I was bringing through duplicate values so I put a distinct on the SQ. There is also a not null filter on both ports.
However, whilst investigating the initial error that is logged for a specific pair of values from the source, there is only 1 set of them (no duplicates). The pair exists on the target so surely should just return from the dynamic lookup newrowlookup=0.
Is this some kind of persistent data in the cache that is causing this to think that it is duplicate data? I haven't got the persistent cache or recache from database flags checked.
Solution:
This occurs when the table on which the lookup is built has
duplicate rows. Since a dynamic cached lookup cannot be created with
duplicate rows, the session fails with this error.
Make sure there are no duplicate rows in the table before starting the session. OR Do a Select DISTINCT in the lookup cache SQL.
Make sure there are no duplicate rows in the table before starting the session. OR Do a Select DISTINCT in the lookup cache SQL.
OR
Make sure the data types of source and look up fields match and extra
spaces are trimmed, looks like the match is failing between src and lkp
so the lookup is trying to insert the row in cache even though its
present already.
Comments
Post a Comment