Reporting mit Oracle-Daten

Wenn man schon über ein schönes Reporting Tool verfügt, sollte man dies auch ruhig mit Oracle-Datenbanken einsetzen, oder?

Hier stehen zwei Wege zur Verfügung:

  • Verbindungsserver auf SQLServer
  • OLEDB-Abfrage direkt gegen Oracle

Im folgenden soll nur der zweite Weg behandelt werden, da nur hier die Besonderheiten von Oracle zum tragen kommen.

 

Installationsbesonderheiten

Hierfür ist die Installation des Oracle-Clients auf dem Reporting-Server notwendig und die Vergabe der Berechtigungen für den Network Service, damit dieser Client genutzt werden kann. Bei der Installation ist darauf zu achten, dass auch der OLEDB-Treiber installiert und registriert wird. Man kann dies testen, durch ein kleines Beispielprojekt im VisualStudio, welches direkt auf dem Server geöffnet wird und versucht diesen Treiber zu verwenden.

Mehr Infos zu den Berechtigungen findet man hier:
Reporting Services may not be able to run reports against Oracle databases: Knowledgebase-Artikel

Parameter

Bei der Verwendung von Parametern für Berichte werden benannte Parameter (z. B. @Auswertungsdatum) nicht unterstützt und müssen als unbenannte positionsabhängige Parameter verwendet werden. Im SQL wird anstelle des Parameters einfach ein ? eingesetzt. In den Berichtsparametern, kann anschliessend die Definition dieser Parameter bearbeitet werden. Typischerweise erhalten diese Namen wie:

  • Parameter1
  • Parameter2

Beispiel:

Select * from Tabelle where Name like ? 

Stored Procedures

Damit der Output von Stored Procedures verwendet werden kann, müssen einige Vorbedingungen zutreffen:

  • Die Zeilen müssen per OUT REF CURSOR zurückgegeben werden
  • SSRS kann nur einen Cursor pro Stored Procedure verwenden
  • Beim Dataset muss in den Eigenschaften der Command Type Stored Procedure ausgewählt werden

 

Eine beispielhafte Beschreibung findet man hier:
Tap into Oracle Databases with SQL Server Reporting Services: www.developer.com