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-Designer oder MicrosoftOffice SharePoint Server 2007 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.
Hinweis |
---|
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 Erstellen von Berichtsdatasets aus einer Oracle-Datenbank.
Wichtig |
---|
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 von Office SharePoint Server 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 |
Typ |
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 Verknüpfungen beinhalten, Fehler auf, oder sie geben falsche Ergebnisse zurück. Daher wird im Oracle-Abfragekonvertierungsprogramm von Reporting Services in einigen linken äußeren Verknüpfungen 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 dieses Schalters auf True werden alle Unicode-Zeichenfolgenkonstanten in Abfragen mithilfe der UNISTR-Funktion von Oracle codiert. |
DisableTS Truncation |
Boolean |
False |
Der Schalter 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 dieser Schalter auf True festgelegt werden, sodass die erforderliche Umwandlung automatisch ausgeführt wird. |