عنوان:

‫تبدیل تاریخ میلادی به شمسی در SSIS به کمک سی شارپ


نویسنده: محمد باقر سیف اللهی
تاریخ: ۱۳۹۱/۰۵/۳۱ ۲۲:۲
آدرس: www.dntips.ir
برای تبدیل تاریخ میلادی به تاریخ شمسی در package‌های SSIS می‌توان از زبان سی شارپ استفاده کرد . بدین طریق می‌توان در طی عملیات ETL و هنگام transform کردن داده‌ها ، عملیات تبدیل از میلادی به شمسی را انجام داد . عملیات تبدیل داده در این مثال به کمک Script Component انجام می‌شود. 

برای این کار از داده‌های موجود در پایگاه داده [AdventureWorksLT2008R2].[SalesLT].[Address] استفاده می‌کنم . 
برای این کار یک package تعریف می‌کنم و برای استخراج داده‌ها یک OLEDB تعریف می‌کنم . برای تبدیل داده‌ها از Script Component و برای گرفتن خروجی آزمایشی از union استفاده می‌کنم : 

دایره‌های قرمز رنگ مشخص شده در تصویر ، بیانگر data viewerهای تعریف شده است. 

در تنظیمات dataSource مانند زیر عمل می‌کنیم :
دستور زیر فقط برای نمایش یک نمونه از کارکرد عملیات مورد نظر در این مثال می‌باشد 


نمونه خروجی مانند زیر می‌باشد : 




سپس برای تنظیمات Script Component به ترتیب زیر عمل می‌کنیم :

در قسمت Input column ستون هایی را که به عنوان پارامتر می‌توانیم با آنها کار کنیم ، تعریف می‌کنیم : (دقت شود که تغییر نام متغیر‌ها ، در کد‌ها اعمال می‌شوند .) 




حال می‌خواهم ستون‌های تاریخ میلادی و شمسی را برای خروجی تعریف کنم :

 


همانطور که مشاهده می‌کنید ، نوع داده ای برای خروجی را رشته تعریف کردم.

سپس به قسمت script بر می‌گردیم (سمت چپ پنجره ) و روی Edit Script کلیک می‌کنیم : (در صورتی که تمایل به کد نویسی با VB را دارید در همین قسمت می‌توانید آن را تنظیم کنید) 



پنجره ای مانند زیر برای ویرایش کد‌ها ، باز می‌شود 


همانطور که مشاهده می‌کنید درون این کلاس 4 متد تبدیل تاریخ را پیاده کردم و از آنها در متد input0_processInputRow استفاده کردم . این کار نیازی به پیاده سازی حلقه ندارد و به راحتی می‌توان آنها را روی سطر‌های دلخواه تعریف کرد . خروجی نمایش داده شده در data viewer‌ها مانند زیر می‌باشند : 


قبل از اعمال تبدیلات : 



بعد از اعمال تبدیلات : 


موفق باشید 

نظرات

  • مهمان در ۱۳۹۱/۰۵/۳۱ ۲۲:۱۰

    سلام. ممنون از شما.

    کاربرد ssis در محیط کاری برای شما بیشتر در چه مواردی است؟

    • محمد باقر سیف اللهی در ۱۳۹۱/۰۶/۰۱ ۷:۴۴
      سلام ...  SSIS کاربردهای زیادی داره مخصوصا وقتی که با تکنولوژی‌های دیگه ترکیب بشه .... اما نمونه ای که خودم با اون برخورد داشتم ، برای انتقال داده از پایگاه داده‌های قدیمی با فرمت هایی مثل Access به پایگاه داده‌های جدید در قالب SQL بود که خیلی مفید بود و سرعت اجرای عملیاتش فوق العاده است .  موفق باشید
    • بهروز راد در ۱۳۹۱/۰۶/۰۱ ۱۳:۶
      ما نیز با SSIS زیاد سر و کار داریم. چون از زبانی با نام Natural استفاده می‌کنیم که برای به اشتراک گذاری داده‌ها فقط می‌تونه با فایل‌های متنی ساده کار کنه. SSIS به ما کمک می‌کنه تا داده‌های ایجاد شده رو به SQL Server منتقل کنیم.
    • مهمان در ۱۳۹۱/۰۸/۲۷ ۱۴:۴۹
      • وحید نصیری در ۱۳۹۱/۰۸/۲۷ ۱۸:۴۶
        امکان به اشتراک گذاشتن مطالب برای کلیه اعضای سایت وجود دارد:
        https://www.dntips.ir/DailyLinks 
        لطفا برای بعد از این قسمت ویژه استفاده کنید.