Paraméterátadás SQL Task-nak


Már egészen elfeledkeztem első SSIS-es problémámról, de most újra eszembe jutott. Ki akartam írni egy globális változó tartalmát egy táblába de nem sikerült. Hibaüzenet:

...with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

SQL 2000-ben egyszerű helyzetünk volt, ha globális változó tartalmát ki akartuk írni egy SQL táblába: Az Execute SQL Task-ban definiáltuk az INSERT utasítást az alábbi módon:

Insert Into [Tábla] VALUES (?)

És összekapcsoltuk a kérdőjelet a globális változóval. Ha futtattuk a csomagot, a DTS kicserélte a kérdőjelet a globális változó tartalmára.

Újdonságok az SQL Server 2005-ben

A DTS-ben csak SQL Server connection használata esetén volt lehetőségünk helyettesíteni a kérdőjeleket globális változók tartalmával. Nem volt lehetőségünk például dbf fájlok parametrizált lekérdezésére. Az SSIS-ben megnyílt erre a lehetőség, de magával hozta azt a követelményt, hogy nem mindegy, hogy hogyan nevezzük el a paramétereket. (Nem mindegy milyen nevet adunk neki)

SSIS Paraméterátadás SQL Task-nak

Ha SQL Server Connection-t használunk, (Azaz, ha SQL Server-t kérdezünk így le) akkor a paramétereket rendre 0, 1, 2, . névvel kell ellátnunk. Ha más adatforráshoz kapcsolódunk, máshogy kell elnevezni a paramétereket. A következő táblázat megmutatja, hogy mely adatforrás milyen paraméter megnevezést követel meg magának:

Paraméterátadás SQL Task-nak: Connection-ök és paraméter megnevezések

Felhasznált irodalom: Kirk Haselden blogja

Kővári Attila
2006. március 27.
Címkék: