Die OLE DB Datenquelle bietet die Möglichkeit, flexible Abfragen mit Parametern zu verwenden. Nur: in welchem Format geben Sie die Parameter an?
Im folgenden Beispiel verwendet die OLE DB Datenquelle eine gespeicherte Prozedur, um die Daten zu holen. Die Prozedur hat den Namen
getNutzerByPLZ und erwartet die beiden Parameter
PLZ_von und
PLZ_bis.
Das folgende Bild zeigt die Konfiguration der Quelle:
|
Konfiguration der OLE DB Datenquelle mit gespeicherter Prozedur (2008 R2) |
Sie sehen, dass der SQL-Befehl EXEC die Parameter explizit aufführt. Zur Laufzeit wird an jeden Parameter der Wert übergeben, den SSIS für das Platzhalterzeichen ? einsetzt. Welche Werte das sind, konfigurieren Sie durch Anklicken der Schaltfläche "Parameter..." Das folgende Bild zeigt den Dialog:
|
Binden von SSIS-Variablen an Parameter der gespeicherten Prozedur (2008 R2) |
Zur Laufzeit wird der Inhalt der jeweils angegebenen Variablen an den entsprechenden Parameter der gespeicherten Prozedur übergeben.
Angenehm
bei dieser Schreibweise ist die Tatsache, dass der Editor die Zuordnung der
Fragezeichen zu den Namen der Prozedurparameter vornimmt. Das reduziert die
Möglichkeit von Konfigurationsfehlern und ermöglicht das nachträgliche
Hinzufügen weiterer Parameter ohne großen Aufwand.
Bei SSIS 2012 sieht es etwas anders aus
|
SQL Befehl mit Parametern bei OLE DB Datenquelle in SSIS 2012 |
|
Bindung der Parameter an Variablen in SSIS 2012 |
Wenn Sie dasselbe bei der 2012er Version versuchen, bekommen Sie jedoch einen Syntaxfehler! Hier dürfen Sie beim EXEC nicht mehr die Namen der Prozedurparameter aufführen (siehe Bild). Da die Parameterzuordnung jedoch auch in dieser Version den Namen der Parameter erwartet, ist dies auch gut - man muss es nur wissen...
Beim SQL Task geht's auch
Dieselbe Art der Parameterübergabe können Sie auch beim Task 'SQL ausführen' in der Ablaufsteuerung verwenden:
|
Aufruf einer gespeicherten Prozedur mit Parametern im Task 'SQL ausführen' |
|
Konfigurieren der Parameterzuordnung im Task 'SQL ausführen' |
Interessanterweise werden in diesem Dialog die benannten Parameter nicht automatisch angeboten, sondern Sie müssen diese von Hand eingeben. Ansonsten ist die Konfiguration aber analog zur OLE DB Datenquelle.