Lookup Transformation
The Lookup transformation performs lookups by joining data in input columns with
columns in a reference dataset.
You use the lookup to access additional information in a related table
that is based on values in common columns.
You can configure the Lookup transformation in the following ways:
- Select the connection manager that you want to use. If you want to connect to a database, select an OLE
- DB connection manager. If you want to connect to a cache file, select a Cache connection manager.
- Specify the table or view that contains the reference dataset.
- Generate a reference dataset by specifying an SQL statement.
- Specify joins between the input and the reference dataset.
- Add columns from the reference dataset to the Lookup transformation output.
- Configure the caching options.
The Lookup transformation has the following
inputs and outputs:
- Input.
- Match output. The match output handles the rows in the transformation input that match at least one entry in the reference dataset.
- No Match output. The no match output handles rows in the input that do not match at least one entry in the reference dataset. If you configure the Lookup transformation to treat the rows without matching entries as errors, the rows are redirected to the error output. Otherwise, the transformation would redirect those rows to the no match output.
- Error output.
Step 1: Drag and Drop Lookup component and go Edit mode.
Step 2: Select No Cache Mode ,Connection Type is OLE DB Connection and Redirect Rows to no match output.
Step 3: In the Connection Tab, select the OLE DB Connection for your database and select the SQL Query option. Please use the following query.
select LookUpValueID, v.value from Lookupvalue v inner join Lookup l on v.LookUPID = l.LookupID where l.Code ='Gender'
Step 4: Connect the Match output to ADO.net Destination datasource and No Match output to the Flat file destination.
Step 5: Execute the Package.
Step 6: After executing the package, see the results in SQL Server and the flat file.
Let me explain the comparison/matching behavior
of lookup transformation: It matches data differently when in cached (default)
and non-cached (Enable memory Restriction) mode. In cached mode comparison will
be case sensitive where as in non-cached mode comparison will be based on
collation level of column being matched.
Mode :: Behavior
Cached (default) :: Case sensitive
Non-cached (Enable memory restrictions) :: Collation level of column
Why?
It basically depends where the comparision is done. In cached mode SSIS
reterives data from the source and comparision is done at the client on the byte
level which is CASE SENSITIVE. Whereas in Non-Cache mode ( Enable memory
Restriction) comparision is done at database and is based on the collation level
of the column being matched.