Scenario:
We need to extract the records from a reference table for Lookup Transformation and we are using a Stored Procedure. As Reference Table has records for multiple regions and we get Source Files for each region, we don't want to put all the records in memory if we can just get the records related to Source File Region. The Stored Procedure accepts the RegionCode as Parameter and get the related records.How can we pass the parameter value to stored procedure in Lookup Transformation that we will extract from file name in SSIS Package?
What you will learn in this video
- How to create SSIS Package from scratch
- How to Loop through files by using For-each Loop Container in SSIS Package
- How to Read the part of File Name and Save into Variable by using Expressions
- How to make use of Variable to make Lookup Query dynamic for Stored Procedure in SSIS Package
- How to filter the rows for Lookup Reference Data Set by using Variable Value in Stored Procedure in SSIS Package
Solution:
Let's create Sample Table for Reference data with some sample records and a stored Procedure that can accept RegionCode as input and return us CustomerId,CustomerName,RegionCode so we can map the CustomerName and RegionCode with input columns and add CustomerId as output columns from Lookup Transformation.
--drop table [dbo].[Customer_Dst] CREATE TABLE [dbo].[Customer_Dst]( [CustomerId] [int] NULL, [SalesAmt] int ) --drop table [dbo].[Lkp_Customer] CREATE TABLE [dbo].[Lkp_Customer]( [CustomerId] [int] NULL, [CustomerName] [varchar](100) NULL, [StreetAddress] [varchar](100) NULL, [City] [varchar](100) NULL, [State] [char](2) NULL, [Region] [varchar](2) NOT NULL ) insert into [dbo].[Lkp_Customer] SELECT * FROM ( SELECT N'1' AS [CustomerId] ,N'Aamir' AS [CustomerName] ,N'1234 Street' AS [StreetAddress] ,N'Sahiwal' AS [City] ,'PJ' AS [State] ,N'AS' AS [Region] UNION ALL SELECT N'2' AS [CustomerId] ,N'M Raza' AS [CustomerName] ,N'Test Street Address' AS [StreetAddress] ,N'Lahore' AS [City] ,N'PJ' AS [State] ,N'AS' AS [Region] UNION ALL SELECT N'3' AS [CustomerId] ,N'Robert' AS [CustomerName] ,N'1234 Street' AS [StreetAddress] ,N'FrankFurt' AS [City] ,'NA' AS [State] ,N'EU' AS [Region] UNION ALL SELECT N'4' AS [CustomerId] ,N'John' AS [CustomerName] ,N'1234 Street' AS [StreetAddress] ,N'Paris' AS [City] ,N'NA' AS [State] ,N'EU' AS [Region] UNION ALL SELECT N'5' AS [CustomerId] ,N'Sam' AS [CustomerName] ,N'1234 Street' AS [StreetAddress] ,N'Charlotte' AS [City] ,N'NC' AS [State] ,N'NA' AS [Region] ) t; --Create stored Procedure to use in Lookup Transformation CREATE PROCEDURE dbo.GetCustomer @Region VARCHAR(100) AS BEGIN SELECT customerid ,customername ,Region FROM dbo.Lkp_Customer WHERE Region = @Region END
Source Flat File
CustomerName,CustomerRegion,SaleAmt
Aamir,AS,1000
M Raza,AS,500
Use Stored Procedure with Parameter in Lookup Transformation in SSIS Package - SSIS Tutorial
Related Posts / Videos on Lookup Transformation
- How To Use Dynamic Query in Lookup Transformation in SSIS Package
- How to Force Lookup Transformation to Work as Case In-Sensitive in SSIS Package
- Does Lookup Transformation perform Left Outer Join or Not in SSIS Package
- How Null values will be matched in Lookup Transformation in Diff Modes(Full Cache,Partial or No Cache)
- How to Handle "Row yielded no match during lookup". Error in SSIS Package
- How Lookup Transformation works for Duplicate Records in Reference Data Set
- How to Load Slowly Changing Dimension Type 1 by using Lookup Transformation ( UpSert Operation)
- Detailed Demo on Lookup Transformation Modes ( Full Cache, Partial, No Cache) by using SQL Server Profiler
- Diff between Inner join ( Merge Join Transformation) and Lookup Transformation ( Matched Output)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.