2017-06-13 54 views
-1

我正在開展一項任務,我需要將複雜的存儲過程轉換爲ETL,但這裏的複雜性在於,SP有五個參數,所以我應該如何將SP轉換爲ETL並將數據加載到DW中的表中?如何將帶有參數的存儲過程轉換爲ETL並將數據加載到表中

+0

你的意思是說5個輸入參數? –

+0

由於SP是使用這些參數執行的,因此我不太清楚如何將SP中的結果表映射到DW中的目標表中,而無需這些參數 – Larry

+0

「將SP轉換爲ETL」甚至意味着什麼?你期望的結果是什麼? –

回答

0

我會用合併腳本來加載數據到DW中,如果你喜歡,我可以寫合併腳本。

0

使用這個過程,它應該工作。將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數據類型,你可以使用任何數據類型作爲目標表

相關問題