SSIS OLEDB Command Component

12. January 2010

SSIS dataflow bileşenleri arasında başarılı bir diğer bileşen de OLEDB Command Component'dir. Bu bileşen dataflow içerisindeki data pipeline'dan geçen her satır için bir adet oledb command çalıştırır. Daha net bir şekilde ifade etmek için örneklendirmem gerekli aslında.

Şimdi düşünün ki belirli bir kurala uyan satış faturalarından bir kopya daha oluşturup veri ambarınızda saklıyorsunuz diyelim. Ancak hangi faturaları transfer edip etmediğinizi bilmiyorsunuz ve transfer ettikleriniz için bir işaret'e ihtiyacınız var diyelim. İşte bu noktada transfer edilen her satır için (data pipeline'dan geçen her satır için)
"insert into [transfer_edilen_faturalar] (istransferred,FaturaID) values (1,19575)"
 
gibi bir sql cümlesi çalıştırmak istiyor olabilirsiniz. (Keza bu SP'de olabilir)
İşte bu işlemi gerçekleştirmek için ihtiyacınız olan bileşen OLEDB Command Component'dir.
Daha iyi anlatmak için isterseniz aşağıdaki örneğe bakabilirsiniz:
Test ortamımızda tek bir dataflow içerisinde AdventureWorks Sales tablosundan verileri Sales2 tablosuna alıyoruz ve Sales3 isimli tabloda da transfer flag'i tutuyoruz.


Oledb Command içerisine bulunan sql komutunda parametrik olarak SalesOrderID'yi koyduk.


insert into [Sales3] (istransferred,SalesOrderID) values (1,?)

Dikkat edilirse parametrik tanımlamayı "?" işareti olarak yerleştirdik ki OLEDB Component bunu parametrik bir veri olarak algılayabilsin.






"Column Mappings" sekmesine geçtiğimizde ise görsel olarak parametreyi pipeline içerisindeki hangi alanla eşleştireceğimizi soran bir ekranla karşılaşırız. Gerekli eşleştirmeyi yaptıktan sonra geriye sadece execute etmek kalıyor.



(Not: Yalnız burada dikkat edilmesi gereken önemli bir husus var. Varsayılan OLEDB Command Sales2'e aktarım gerçekeşsin ya da gerçekleşmesin Sales3'e kayıt atar. Bunu engellemenin de çeşitli yöntemleri var. Daha fazla bilgi için benimle irtibata geçiniz.)


(Not2: OLEDB Command ile birlikte çağırdığınız SP'den dönen verileri pipeline içerisine almak da mümkün bu konuda da benimle iletişime geçebilirsiniz.)

Dataflow Components , ,

Add comment




biuquote
  • Comment
  • Preview
Loading