2013-12-17 41 views
6

Mam problem i nie wiem, czy jest to możliwe.Zestaw wyników SSIS, Foreachloop i zmienna

Mam proste zadanie SQL.

SELECT Name, email FROM table_name

Korzystanie z zestawu wyników, staram się przekazać go do zmiennej i używać go na zadania e-mail z pętli foreach, ale nie mając szczęście coraz to zadziałało. Jeśli zrobię tylko jedną kolumnę, działa dobrze. Mój problem to wiele kolumn.

Dzięki za pomoc z góry.

+2

Proszę szczegółowo opisać, jak masz skonfigurowane zadanie zadań SQL, zadeklarowane zmienne i ich typy danych oraz sposób skonfigurowania pętli ForEach – billinkc

+0

SQL to OLE DB z ustawieniem "Pełny zestaw wyników", Nazwa wyniku 0, 1 zmapowany do dwóch zmiennych: User :: email i user :: Fullname. Oba są typem danych "Obiekt". Pętla Foreach jest ustawiona na moduł ADO Enumerator, zmienna źródłowa ustawiona na User :: email. , ale nie powiodło się w zadaniu SQL, gdy dodałem wiele kolumn – user3112621

+0

Jaki jest błąd? Kiedy stworzyłem podobne zapytanie i przypisano do dwóch zmiennych w zestawie wyników, otrzymałem błąd w wykonaniu zadania SQL. –

Odpowiedz

9

Wymyśliłem własne pytanie. Dodam go tutaj, na wypadek, gdyby ktoś inny miał ten sam problem.

  1. W zapytaniu SQL pierwsza kolumna powinna być Twoim kluczowym wynikiem. na przykład mój był e-mailem.

  2. W SQL Task pod generalnego ustaw Resultset z "Full Wynik reszta"

  3. W SQL Task pod Result Set ustaw zmienna z "0" jako nazwa wyniku, utwórz zmienną jako typ danych "Obiekt" dla kolumny wiadomości e-mail i kliknij przycisk OK, aby zapisać i zamknąć. Przykład: email_Ob

  4. Przechodząc do zmiennej oknie , tworzyć bardziej zmienna dla innych kolumn jako przedmiot i odkąd używam tego za zadanie email muszę konwertować od obiektu do String, więc trzeba stworzyć inna zmienna typu string dla każdego

    Przykład:

     **Variable Name**  **Datatype** 
          email_Ob    Object 
          Name_Ob     Object 
          email_St    String 
          Name_St     String 
    
  5. Foreach Loop zadań Pod Collection zmiana następuje:

    Enumerator: Foreach ADO Enomator

    ADO obiekt źródłowy zmienna: Wybierz zmienną kluczową (email_Ob)

    Wybierz Wiersze w pierwszej tabeli zadań

  6. Foreach Loop pod Zmienne mapowania dodaj zmienną za pomocą String Typ danych w takiej samej kolejności, jak w zapytaniu SQL. Kliknij OK, aby zapisać i wyjść.

  7. Teraz można dodać Email zadań wewnątrz Foreach Loop i korzystanie z tych zmiennych String jako część wiadomości e-mail lub można ją używać do innych zadań.

Nadzieję, że ta pomoc i jeśli masz jakiekolwiek pytania, proszę pytać. Robiąc to, mogłem dodać więcej kolumn, gdy tego potrzebuję.

+0

Potrzebna jest tylko jedna zmienna Object dla zestawu wyników zadania SQL. Następnie po prostu jako zmienną źródłową obiektu ADO i zmapuj każdą kolumnę zestawu wyników według indeksu do zmiennej (email_St, nazwa_St), itp. –

+0

Błąd: Typ wartości przypisanej do zmiennej "User :: BaselineId" różni się od bieżący typ zmiennej. Zmienne nie mogą zmieniać typu podczas wykonywania. Typy zmiennych są ścisłe, z wyjątkiem zmiennych typu Object. – bilal