Windows - DTS csomag lekérdezése külső forrásból

DTS 8. rész

forráskód letöltése
A DTS csomagok lehetőségei közül most ismerkedjünk meg az OPENROWSET használatával. Ezzel a Transact-SQL paranccsal – megfelelő beállítások mellett – a DTS csomagban definiált adatpumpák "rowset" eredményadatai lekérdezhetőek. Cikkünkben példával is illusztráljuk a parancs működését.
Bevezetés
A Data Transformation Services csomag adatai elérhetővé tehetők külső forrás számára, mint amilyen például az SQL Query Analyzer.
  • Lekérdezhető egy transzformációs lépése a csomagnak a Transact-SQL OPENROWSET utasítással.
  • A csomag csatolt kiszolgálóként való értelmezése és adatainak elosztott lekérdezésbe való illesztése.
Amikor lekérdezzük a csomag "rowset" adatait, a következő feltételek érvényesek:
  • Az adatokat szolgáltató csomagot annak az alkalmazásnak kell indítania, amely kinyeri a csomagból az adatokat. Ne indítsuk el a csomagot adatot küldve az azt igénylő alkalmazásnak, vagy folyamatnak.
  • Mi csak Transform Data task lépést kérhetünk le a csomagból.
  • A csomagnak célállomása csak mezőhöz kötődhet, nem lehet text fájl.
A DTS tervezőben, a csomag adatait elérhetővé tehetjük, ha a DSO rowset provider checkbox-ot kiválasztjuk (a Workflow Properties dialógusdoboz Options lapján) egy Tranform Data task-hoz kapcsolódó lépésre. A task adata így elérhetővé válik külső igénylőnek.
Csak azokban a csomagokban kapcsoljuk be ezt a checkbox-ot, amelyet tervezünk is lekérdezni. Miután ezt az opciót bekapcsoltuk, a csomag így beállított lépése nem fejezi be a működését, amikor a csomag rendesen lefut. Amíg ez a flag be van állítva, az adatpumpa task csak az OPENROWSET-en keresztül elérhető.
Csomag lekérdezése OPENROWSET segítségével
Mielőtt lekérdeznénk egy csomagot, vegyük figyelembe a következőket:
  • DTS a saját OLE DB szolgáltatóját használja, a DTSPackageDSO-t. Csupán a provider név, string és lekérdezés argumentumok megadása a szükséges.
  • Használjuk a 'DTSPackageDSO' értéket a provider név helyén.
  • Használjuk bármely kombinációit a dtsrun parancs kapcsolóinak, amely szükséges lehet, leírni a csomagot a provider string paraméterben.
  • Használjuk valamelyik verziót a következők közül a lekérdezési paraméterben: 'SELECT *', 'SELECT * FROM <package name>' vagy 'SELECT * FROM <package step name>'.
  • Ha több lépés esetén is bekapcsoljuk a DSO rowset provider opciót, akkor szükséges, hogy meghatározzuk az OPENROWSET lekérdezés paraméterében a lépés nevét, ami kimásolható a Workflow Properties dialógusablak Options lapjáról.
  • Ha több verziót is elmentettünk a csomagba, akkor meghatározhatjuk a verziót, használva a dtsrun parancs /vpackage_version_guid_string kapcsolóját. Ha ezt nem adjuk meg, akkor a legfrissebb verziót használja a szerver.
Példa az adatletöltésre
SELECT * FROM OPENROWSET('DTSPackageDSO', '/FE:\Work\Employees.dts', 'SELECT * FROM DTSStep_DTSDataPumpTask_1')
A mellékelt sql állomány, a dts fájl adatpumpájától kér le adatokat. Ügyeljünk arra, hogy az OPENROWSET utasítás második paraméterét, a dts állományhivatkozást megfelelően állítsuk be.

DTS cikksorozat