2017-06-13 8 views
-1

複雑なストアドプロシージャをETLに変換する必要があるタスクを実行していますが、ここでの複雑さはSPに5つのパラメータがあります。 SPをETLに変換し、DWのテーブルにデータをロードする方法はありますか?パラメータを持つストアドプロシージャをETLに変換し、テーブルにデータをロードする方法

+0

あなたは意味しますか? –

+0

SPはこれらのパラメータを使用して実行されるため、SPの結果テーブルをDWの宛先テーブルにそれらのパラメータなしでマップする方法についてはあまりよくわかりません。 – Larry

+0

「SPをETLに変換する」とはどういう意味ですか?あなたの望む結果は何ですか? –

答えて

0

私はマージスクリプトを使用してDWにデータをロードしますが、私はマージスクリプトを書くことができます。

0

このプロシージャを使用すると動作するはずです。 Spの結果を一時テーブルに取得し、一時テーブルを使用してマージします。 5入力パラメータを言って

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を選択している、あなたがターゲット表のように任意のデータ型を使用することができます

関連する問題