Erstellen und Verwenden Oracle-basierter Berichtsmodelle

Sie können Berichtsmodelle generieren, die auf einer Oracle-Datenbank mit der Version 9.2.0.3 oder höher basieren, indem Sie den Modell-Designer, den Berichts-Manager oder Microsoft Office SharePoint Server 2007 oder SharePoint-Server 2010 verwenden, wenn die Ausführung im integrierten SharePoint-Modus erfolgt.

Zum Generieren von Modellen, die auf Oracle-Datenbanken basieren, müssen Sie einen Oracle-Client, Version 9.2.0.3 oder höher, ausführen. Das Verzeichnis für den Oracle-Client muss sich im Systempfad befinden, und sowohl der Berichtsserver-Windows-Dienst als auch der Berichtsserver-Webdienst müssen über Berechtigungen für den Zugriff auf die Dateien in diesem Verzeichnis verfügen.

Überprüfen Sie außerdem Folgendes:

  • Die Oracle-Datenverarbeitungserweiterung von Reporting Services ist in Ihrer Reporting Services-Installation verfügbar.

  • Der Oracle-Client ist in einem Ordner installiert, auf den sowohl mit dem Berichtsserver-Windows-Dienst als auch mit dem Berichtsserver-Webdienst zugegriffen werden kann.

  • Der Berichtsserver-Windows-Dienst, der Berichtsserver-Webdienst und die Kontos für die unbeaufsichtigte Ausführung müssen alle über den Verzeichniszugriff Lesen und Ausführen für die Oracle-Clientinstallation verfügen.

Verbindungszeichenfolgen

Beim Erstellen eines auf einer Oracle-Datenbank basierten Berichtsmodells wird die Verbindungszeichenfolge in etwa wie folgt angezeigt:

Data Source="Oracle9";Unicode="True"

wobei "Oracle9" den logischen Namen des Oracle-Servers darstellt.

HinweisHinweis

Wenn Sie eine Verbindungszeichenfolge für die Oracle-Datenbank angeben, muss ServerName den in der Konfigurationsdatei tnsnames.ora definierten Namen entsprechen.

Weitere Informationen zum Herstellen einer Verbindung mit einer Oracle-Datenquelle finden Sie unter Oracle-Verbindungstyp (SSRS).

Wichtiger HinweisWichtig

Wenn Sie die Datenquellensicht für das Oracle-Modell generieren, müssen Sie im Datenquellensicht-Assistenten auf der Seite Datenquelle auswählen auf die Schaltfläche Erweitert klicken und im Dialogfeld Erweiterte Optionen für Datenquellensicht den Schemanamen zum Filtern der Datenbankobjekte auswählen. Wählen Sie dann die Datenbankobjekte aus, die Sie dem Modell hinzufügen möchten.

Funktionale Einschränkungen

Durch das zugrunde liegende Verhalten der Oracle-Datenbank weist das SMDL-Abfragekonvertierungsprogramm (Semantic Model Definition Language) einige Verhaltensunterschiede auf, wenn es mit einer Oracle-Datenbank verwendet wird. Diese Verhaltensweisen können geringfügige Unterschiede in der Funktionalität und in den Konfigurationsschaltern beinhalten, die zum Steuern von Problemumgehungen für Fehler und Entwurfseinschränkungen in der Zieldatenbank erforderlich sind. Diese Unterschiede werden im Folgenden beschrieben.

Datentypen

Nur die im Folgenden aufgeführten Oracle-Datentypen werden von SMDL unterstützt.

SMDL-Typ

Oracle-Typ

String

CHAR, NCHAR, VARCHAR2, NVARCHAR2, LONG, CLOB, NCLOB

Decimal oder Integer

NUMBER

Boolean

NUMBER

Wenn eine Oracle-Spalte in der Datenquellensicht-Datei (Data Source View, DSV) als Boolean markiert ist, muss die zugrunde liegende Spalte NUMBER sein, und sie enthält nur die Werte 0, 1 oder NULL.

Date

DATE, TIMESTAMP

Binary

RAW, LONGRAW, BLOB

SMDL unterstützt keine anderen außer den oben aufgeführten Datentypen, einschließlich der folgenden:

  • BINARY_FLOAT

  • BINARY_DOUBLE

  • TIMESTAMP WITH TIME ZONE

  • TIMESTAMP WITH LOCAL TIME ZONE

  • INTERVAL YEAR TO MONTH

  • INTERVAL DAY TO SECOND

  • ROWID

  • UROWID

  • BFILE

Während der automatischen Generierung eines Berichtsmodells mithilfe des Berichts-Managers oder mithilfe eines SharePoint-Produkts werden Spalten, in denen nicht unterstützte Datentypen enthalten sind, aus dem Modell ausgeschlossen. Außerdem wird die gesamte Entität nicht generiert, wenn ein nicht unterstützter Datentyp Teil eines Primärschlüssels ist.

Beim Erstellen eines Berichtsmodells mithilfe des Modell-Designers wird dem Berichtsmodell alles hinzugefügt. Daher müssen beim Optimieren des Modells alle oben aufgeführten nicht unterstützen Datentypen manuell herausgefiltert werden.

Funktionen

Das Verhalten einiger Funktionen kann möglicherweise von der zugrunde liegenden Datenbank abhängig sein. Wenn Sie für das length-Argument in der Funktion Left, Right oder Substring einen kleineren Wert als 0 angeben, ist das Verhalten in SMQL nicht definiert.

Konfigurationsschalter

Aufgrund der zugrunde liegenden Datenquelle sind viele Konfigurationsschalter verfügbar, mit denen das Verhalten des Abfragekonvertierungsprogramms basierend auf den Besonderheiten der Datenquelle und der Umgebung geändert werden kann. Die folgenden Schalter sind in der Datei RSReportServer.config definiert, die standardmäßig im Ordner SysDrive>:\Programme\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer\ installiert ist.

Name

Type

Definition (Standard)

Beschreibung

Disable

NO_MERGE

InLeftOuters

Boolean

False

Der für Oracle-Abfragen generierte NO_MERGE-Optimiererhinweis wird vom Schalter deaktiviert.

Aufgrund der technischen Probleme im Oracle-Abfrageoptimierer treten bei bestimmten Klassen von Abfragen, die linke äußere Joins beinhalten, Fehler auf, oder sie geben falsche Ergebnisse zurück. Daher wird im Oracle-Abfragekonvertierungsprogramm von Reporting Services in einigen linken äußeren Joins der NO_MERGE-Optimiererhinweis verwendet. Während dies zu einer richtigen Ausführung der Abfrage führt, kann die Leistung beeinträchtigt werden. Wenn Sie ein Softwareupdate von Oracle abrufen, mit dem dieses Problem behoben wird, wird dieser Schalter möglicherweise auf True festgelegt, um die Problemumgehung für NO_MERGE zu deaktivieren.

EnableUnistr

Boolean

False

Der Schalter erzwingt die explizite Verwendung der UNISTR-Funktion, um Unicode-Literale in Oracle-Abfragen darzustellen.

Wenn das Gebietsschema der Datenbank dem Gebietsschema der in der Abfrage enthaltenen Zeichenfolgenkonstanten entspricht, können Unicode-Zeichenfolgenkonstanten in der Regel als reguläre Zeichenfolgen in der Abfrage generiert werden. Bei Verwendung literaler Konstanten, die innerhalb der von NLS_CharacterSet der Oracle-Datenbank definierten Codepage nicht vorhanden sind, erfordert Oracle die Verwendung der expliziten UNISTR-Funktion, um Unicode-Literale darzustellen. Durch das Festlegen dieser Option auf True werden alle Unicode-Zeichenfolgenkonstanten in Abfragen mithilfe der UNISTR-Funktion von Oracle codiert.  

DisableTSTruncation

Truncation

Boolean

False

Die Option deaktiviert das explizite Abschneiden von Sekundenbruchteilen in TIMESTAMP bei der Konvertierung in DATE.

Aufgrund des standardmäßigen Rundens in Oracle, bei dem Timestamps in Datumsangaben umgewandelt werden, und aufgrund der Tatsache, dass für bestimmte Datumsvorgänge eher Datumsangaben statt Timestamps erforderlich sind, kann die Genauigkeit dieser Vorgänge nur durch das explizite Abschneiden der Sekundenbruchteile von timestamp-Datentypen vor der Konvertierung in ein Datum sichergestellt werden. Dieses Abschneiden wird auch auf Datumsangaben angewendet, da das Oracle-Abfragekonvertierungsprogramm nicht über Zugriff auf die zugrunde liegenden Informationen zum Oracle-Typ verfügt, um zwischen Timestamp und Datum zu unterscheiden. Dies hat eine geringe Auswirkung auf die Leistung vieler Datumsvorgänge. Wenn in keiner Zieldatenbank Timestamps verwendet werden, kann dieser Schalter auf True festgelegt werden, wodurch unnötiges Abschneiden entfällt.

EnableMath

OpCasting

Boolean

False

Der Schalter aktiviert die Umwandlung von Ergebnissen aus mathematischen Vorgängen in ein Dezimalstellenformat von Microsoft .NET Framework.

Bestimmte mathematische Vorgänge in Abfragen haben Dezimalwerte mit einer Kombination aus Genauigkeit und Dezimalstellenanzahl als Ergebnis, die nicht im decimal-Datentyp von .NET Framework dargestellt werden können. Während Sie die Ergebnisse solcher Dezimalausdrücke explizit in eine Dezimalzahl umwandeln können, ist es unwahrscheinlich, dass die Benutzer des Berichts-Generators wissen, dass dies zur Entwurfszeit erforderlich ist. Wenn solche Ausdrücke häufig erstellt werden, kann diese Option auf True festgelegt werden, sodass die erforderliche Umwandlung automatisch ausgeführt wird.

Änderungsverlauf

Aktualisierter Inhalt

Der Name der Konfigurationsoption zum Deaktivieren des expliziten Abschneidens von Sekundenbruchteilen in TIMESTAMP beim Konvertieren in DATE wurde aktualisiert. Der korrekte Optionsname ist DisableTSTruncation.