-1
我正在開展一項任務,我需要將複雜的存儲過程轉換爲ETL,但這裏的複雜性在於,SP有五個參數,所以我應該如何將SP轉換爲ETL並將數據加載到DW中的表中?如何將帶有參數的存儲過程轉換爲ETL並將數據加載到表中
我正在開展一項任務,我需要將複雜的存儲過程轉換爲ETL,但這裏的複雜性在於,SP有五個參數,所以我應該如何將SP轉換爲ETL並將數據加載到DW中的表中?如何將帶有參數的存儲過程轉換爲ETL並將數據加載到表中
我會用合併腳本來加載數據到DW中,如果你喜歡,我可以寫合併腳本。
使用這個過程,它應該工作。將Sp的結果存入臨時表並使用臨時表進行合併。
CREATE PROCEDURE USP_ETLJOB
AS
BEGIN
CREATE TABLE #temp1 (
col1 INT
,col2 INT
,col3 INT
,col4 INT
)
INSERT INTO #temp1
EXEC usp_Inputproc @1
,@2
,@3
,@4;
MERGE Destination AS target
USING #Temp1 AS source
ON target.col1(id) = source.col1(id)
WHEN MATCHED
THEN
UPDATE
SET target.col1 = source.col1
,target.col2 = source.col2
, target.col3 = source.col3
, target.col4 = source.col4
WHEN NOT MATCHED BY TARGET
THEN
INSERT (
col1
,col2
,col3
, col4
)
VALUES (
source.col1
,source.col2
,source.col3
,source.col4
)
END
我選擇INT數據類型,你可以使用任何數據類型作爲目標表
你的意思是說5個輸入參數? –
由於SP是使用這些參數執行的,因此我不太清楚如何將SP中的結果表映射到DW中的目標表中,而無需這些參數 – Larry
「將SP轉換爲ETL」甚至意味着什麼?你期望的結果是什麼? –