خروجی های CSV از پایگاه داده با استفاده از SSIS (For Loop Container)

گاهی پیش میاد که خروجی های متفاوتی رو در قالب فایل های متنی یا csv از پایگاه های داده یا دیتابیس خروجی بگیرید. به طور مثال جدولی از مشتریان در دیتابیس وجود دارد و می خواهید به ازای هر شهر اطلاعات مشتریان رو در قالب فایل csv یا متن خروجی بگیرید. برای حل این مساله راحت ترین کار استفاده از ابزارهای SSIS مایکروسافته که با هم به بررسی نحوه اجراش می پردازیم. در این روش از ابزار For Loop Container استفاده می کنیم هر چند در پست های بعدی روش جایگزین با استفاده از For Each رو معرفی می کنم که هزینه کم تری داره و خودم هم ترجیحش می دهم.

نسخه Visual Studio مورد استفاده در این مثال : Visual Studio 2015

نسخه SSDT مورد استفاده در این مثال : SSDT 2017

نسخه MSSQL Server مورد استفاده در این مثال : Microsoft SQL Server 2017 (RTM)

 

 SSDT رو از این لینک دانلود و با توجه به توضیحات نصب کنید.

جدولی که می خواهیم داده ها رو از اون خروجی بگیریم از دیتابیس AdventureworksDW هستش که برای دانلود می تونید با توجه به نسخه database از طریق لینک اعلامی و از سایت مایکروسافت فایل بکاپ رو دانلود و restore کنید. در مثال این پست من از AdventureworksDW2016CTP3 دارم استفاده می کنم. جداول در گیر رو در کوئری زیر میتونید مشاهده کنید :

کوئری شماره 1 :

روش کار به این صورت هستش که به تعداد Category محصول موجود (در این مجموعه 4 گروه) در بین داده ها حلقه ای ایجاد می کنیم و خروجی رو در پایان هر لوپ (loop) به صورت خروجی csv به همراه اطلاعات مورد نیازمون ذخیره می کنیم.

کوئری شماره 2 : کد یافتن تعداد id موجود (تعداد گروه محصول) برای انجام لوپ

 

کوئری شماره 3 : خروجی مورد نظر برای ذخیره سازی در قالب فایل csv (علامت ؟ برای پاس دادن پارامتر که در این مثال در متغیری به اسم key ذخیره کردیم و همون مقدار id ها category هستند)

 

 

 

 

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست