Oświadczenie o problemie : Wymóg jest prosty, który jest mamy płaski plik (CSV zasadniczo), który musimy załadować do jednej z tabel w bazie danych {x0}}. Problem pojawia się, gdy musimy uzyskać nową kolumnę (nie występować w płaskim pliku) i wypełnić to zbyt wzdłuż resztę kolumn z pliku. Logika derywacji nowych kolumn jest - Znajdź maksymalną datę "TransactionDate".

Całe ćwiczenie ma być wykonane w SSIS i mieliśmy nadzieję, że to zrobiło, używając DataFlowTask, ale utknął na tym, jak uzyskać nową kolumnę, a następnie dodać go do przepływu docelowego.

pomysły :

  1. Użyj DataFlowTask, aby przeczytać plik, a następnie przechowywać go w recordset tak, że w ControlFlow użyjemy ScriptTask, aby przeczytać go jako DataTable i użyj {{x5 }} Sortuj w celu określenia maksymalnej kolumny i naciśnij go do innego DataFlow, aby zostać zużytym przez Sql table (ale to chyba wymagałoby utworzenia tabletype w bazie danych, której uniknęłam)
  2. Wykonaj całą operację w samej DataFlowTask i będziemy potrzebować Asynchronous transformation (aby uzyskać wszystkie dane i dowiedzieć się o wartości maksymalnej)

Jesteśmy tutaj rodzaje poza pomysłami, a każdy ołów był bardzo doceniony i daj nam znać, jeśli w tej sprawie wymagane byłyby dalsze informacje.

0
Abhishek 27 lipiec 2020, 21:21

1 odpowiedź

Najlepsza odpowiedź

Uruchom zadanie Dataflowa, aby wstawić dane do tabeli docelowej. Postępuj zgodnie z zadaniem Execute SQL, który oblicza MAX(TransactionDate) na podstawie wartości w tabeli z null (lub innym wskaźnikiem nowym rekordu) maxtransactiondate.

0
Aaron Hughes 29 lipiec 2020, 14:43