Dela via


OLE DB-kommandotransformering

gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

OLE DB-kommandotransformeringen kör en SQL-instruktion för varje rad i ett dataflöde. Du kan till exempel köra en SQL-instruktion som infogar, uppdaterar eller tar bort rader i en databastabell.

Du kan konfigurera OLE DB-kommandotransformeringen på följande sätt:

  • Ange SQL-instruktionen som körs av omvandlingen för varje rad.

  • Ange antalet sekunder innan SQL-instruktionen överskrider tidsgränsen.

  • Ange standardkodsidan.

Sql-instruktionen innehåller vanligtvis parametrar. Parametervärdena lagras i externa kolumner i transformeringsindata och mappning av en indatakolumn till en extern kolumn mappar en indatakolumn till en parameter. Om du till exempel vill hitta rader i tabellen DimProduct efter värdet i kolumnen ProductKey och sedan ta bort dem, kan du mappa den externa kolumnen med namnet Param_0 till indatakolumnen med namnet ProductKey och sedan köra SQL-instruktionen DELETE FROM DimProduct WHERE ProductKey = ?.. OLE DB-kommandotransformeringen innehåller parameternamnen och du kan inte ändra dem. Parameternamnen är Param_0, Param_1 och så vidare.

Om du konfigurerar OLE DB-kommandotransformeringen med hjälp av dialogrutan Avancerad redigerare kan parametrarna i SQL-instruktionen mappas automatiskt till externa kolumner i transformeringsindata och egenskaperna för varje definierad parameter genom att klicka på knappen Uppdatera . Men om OLE DB-providern som ole db-kommandotransformeringen använder inte stöder härledande parameterinformation från parametern, måste du konfigurera de externa kolumnerna manuellt. Det innebär att du måste lägga till en kolumn för varje parameter i den externa indatan till omvandlingen, uppdatera kolumnnamnen så att de använder namn som Param_0, ange värdet för egenskapen DBParamInfoFlags och mappa indatakolumnerna som innehåller parametervärden till de externa kolumnerna.

Värdet för DBParamInfoFlags representerar parameterns egenskaper. Värdet 1 anger till exempel att parametern är en indataparameter och värdet 65 anger att parametern är en indataparameter och kan innehålla ett null-värde. Värdena måste matcha värdena i OLE DB DB DBPARAMFLAGSENUM-uppräkning. Mer information finns i referensdokumentationen för OLE DB.

OLE DB-kommandotransformeringen innehåller den anpassade egenskapen SQLCommand . Den här egenskapen kan uppdateras av ett egenskapsuttryck när paketet läses in. Mer information finns i Integration Services-uttryck (SSIS),Använda egenskapsuttryck i paket och Transformera anpassade egenskaper.

Den här omvandlingen har en ingång, en vanlig utgång och en felutgång.

Loggning / Skogsavverkning

Du kan logga de anrop som OLE DB-kommandotransformeringen gör till externa dataprovidrar. Du kan använda den här loggningsfunktionen för att felsöka anslutningar och kommandon till externa datakällor som OLE DB-kommandotransformeringen utför. Om du vill logga de anrop som OLE DB-kommandotransformeringen gör till externa dataleverantörer aktiverar du paketloggning och väljer diagnostikhändelsen på paketnivå. Mer information finns i Felsökningsverktyg för paketkörning.

Du kan konfigurera omvandlingen med hjälp av SSIS Designer eller objektmodellen. Mer information om hur du konfigurerar den här omvandlingen finns i utvecklarguiden.

Konfigurera OLE DB-kommandotransformeringen

Om du vill lägga till och konfigurera en OLE DB-kommandotransformering måste paketet redan innehålla minst en dataflödesaktivitet och en källa, till exempel en flat filkälla eller en OLE DB-källa. Den här omvandlingen används vanligtvis för att köra parametriserade frågor.

Så här konfigurerar du OLE DB-kommandotransformeringen

  1. I SQL Server Data Tools (SSDT) öppnar du projektet Integration Services som innehåller det paket du vill ha.

  2. Dubbelklicka på paketet i Solution Explorer för att öppna det.

  3. Klicka på fliken Dataflöde och dra sedan OLE DB-kommandotransformeringen till designytan från verktygslådan.

  4. Anslut OLE DB-kommandotransformeringen till dataflödet genom att dra en anslutning, den gröna eller röda pilen, från en datakälla eller tidigare transformering till OLE DB-kommandotransformeringen.

  5. Högerklicka på komponenten och välj Redigera eller Visa avancerad redigerare.

  6. På fliken Anslutningshanterare väljer du en OLE DB-anslutningshanterare i listan Anslutningshanterare . Mer information finns i OLE DB Connection Manager.

  7. Klicka på fliken Komponentegenskaper och klicka på ellipsknappen (...) i rutan SqlCommand .

  8. I Redigeraren för strängvärde skriver du den parameteriserade SQL-instruktionen med ett frågetecken (?) som parametermarkör för varje parameter.

  9. Klicka på Uppdatera. När du klickar på Uppdatera skapar transformeringen en kolumn för varje parameter i samlingen Externa kolumner och anger egenskapen DBParamInfoFlags.

  10. Klicka på fliken Egenskaper för indata och utdata .

  11. Expandera OLE DB-kommandoindata och expandera sedan externa kolumner.

  12. Kontrollera att externa kolumner visar en kolumn för varje parameter i SQL-instruktionen. Kolumnnamnen är Param_0, Param_1 och så vidare.

    Du bör inte ändra kolumnnamnen. Om du ändrar kolumnnamnen genererar Integration Services ett verifieringsfel för OLE DB-kommandotransformeringen.

    Du bör inte heller ändra datatypen. Egenskapen DataType för varje kolumn är inställd på rätt datatyp.

  13. Om externa kolumner inte visar några kolumner måste du lägga till dem manuellt.

    • Klicka på Lägg till kolumn en gång för varje parameter i SQL-instruktionen.

    • Uppdatera kolumnnamnen till Param_0, Param_1 och så vidare.

    • Ange ett värde i egenskapen DBParamInfoFlags. Värdet måste matcha ett värde i OLE DB DBPARAMFLAGSENUM-uppräkningen. Mer information finns i referensdokumentationen för OLE DB.

    • Ange datatypen för kolumnen och, beroende på datatypen, ange kodsidan, längden, precisionen och skalan för kolumnen.

    • Om du vill ta bort en parameter som inte används väljer du parametern i Externa kolumner och klickar sedan på Ta bort kolumn.

    • Klicka på Kolumnmappningar och mappa kolumner i listan Tillgängliga indatakolumner till parametrar i listan Tillgängliga målkolumner.

  14. Klicka på OK.

  15. Spara det uppdaterade paketet genom att klicka på SparaArkiv-menyn .

Se även

Dataflöde
Integreringstjänstomvandlingar