Création et utilisation des modèles de rapport Oracle

Vous pouvez générer des modèles de rapport basés sur une base de données Oracle qui exécute la version 9.2.0.3 ou une version ultérieure à l'aide du Concepteur de modèles, du Gestionnaire de rapports ou de MicrosoftOffice SharePoint Server 2007 en cas d'exécution en mode intégré SharePoint.

Pour générer des modèles basés sur des bases de données Oracle, vous devez exécuter une version 9.2.0.3 du client Oracle ou une version ultérieure. Le répertoire du client Oracle doit être placé dans le chemin d'accès du système et le service Report Server Windows, plus le service Web Report Server, doivent avoir les autorisations nécessaires pour accéder aux fichiers de ce répertoire.

Vérifiez aussi :

  • L'extension pour le traitement des données Oracle Reporting Services est disponible dans votre installation de Reporting Services.

  • Le client Oracle est installé dans un dossier accessible par le service Report Server Windows et le service Web Report Server.

  • Les services Web Report Server, Report Server Window et les comptes d'exécution sans assistance doivent tous avoir un accès répertoire Lecture et exécution à l'installation du client Oracle.

Chaînes de connexion

Lors de la création d'un modèle de rapport sur une base de données Oracle, votre chaîne connexion est semblable à ce qui suit :

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

"Oracle9" représente le nom logique du serveur Oracle.

[!REMARQUE]

Lorsque vous spécifiez une chaîne de connexion à la base de données Oracle, le ServerName doit correspondre aux noms définis dans le fichier de configuration tnsnames.ora.

Pour plus d'informations sur la connexion à une source de données Oracle, consultez Création de datasets du rapport à partir d'une base de données Oracle.

Important

Lorsque vous générez la vue de source de données pour votre modèle Oracle, veillez à cliquer sur le bouton Avancé sur la page Sélectionner une source de données de l'Assistant Vue de source de données et, dans la boîte de dialogue Options avancées des vues de source de données, sélectionnez le nom de schéma pour filtrer les objets de base de données. Puis sélectionnez les objets de base de données que vous souhaitez ajouter à votre modèle.

Limitations fonctionnelles

Du fait du comportant sous-jacent de la base de données Oracle, il existe des différences de comportement dans le traducteur de requête Semantic Model Definition Language (SMDL) s'il est utilisé avec une base de données Oracle. Ces comportements peuvent inclure des différences mineures de fonctionnalités et des changements de configuration nécessaires pour contrôler les résolutions de bogue et les limites de conception dans la base de données cible. Voici une description de ces différences.

Types de données

SMDL prend en charge uniquement les types de données Oracle suivants.

Typ SMDL

Type Oracle

Chaîne

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

Décimal ou Entier

NUMBER

Boolean

NUMBER

Si une colonne Oracle est marquée comme Boolean dans le fichier vue de source de données (DSV), la colonne sous-jacente doit être NUMBER et ne contenir que les valeurs 0, 1, ou NULL.

Date

DATE, TIMESTAMP

Binary

RAW, LONGRAW, BLOB

SMDL ne prend pas en charge de type de données qui ne figurent pas ci-dessus, y compris ce qui suit :

  • BINARY_FLOAT

  • BINARY_DOUBLE

  • TIMESTAMP WITH TIME ZONE

  • TIMESTAMP WITH LOCAL TIME ZONE

  • INTERVAL YEAR TO MONTH

  • INTERVAL DAY TO SECOND

  • ROWID

  • UROWID

  • BFILE

Lors de la génération automatique d'un modèle de rapport à l'aide d'un Gestionnaire de rapports ou de Office SharePoint Server , les colonnes qui contiennent des types de données non pris en charge sont exclues du modèle. De plus, si un type de données non pris en charge appartient à une clé primaire, l'entité complète n'est pas générée.

Lors de la création d'un modèle de rapport à l'aide du Concepteur de modèles, toutes les données sont ajoutées au modèle de rapport ; par conséquent, vous devrez exclure manuellement tous les types de données non pris en charge ci-dessus lorsque vous affinez le modèle.

Fonctions

Le comportement de certaines fonctions peuvent dépendre de la base de données sous-jacente. Si vous spécifiez une valeur inférieure à zéro pour l'argument de longueur au sein de la fonction Left, Right ou Substring, le comportement est indéfini dans SMQL.

Changements de configuration

En raison de la source de données sous-jacente, plusieurs changements de configuration sont possibles pour modifier le comportement du traducteur de requête basé sur les spécificités de la source de données et l'environnement. Les changements suivants sont définis dans le fichier RSReportServer.config installé dans le dossier <SysDrive>:\Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer\ par défaut.

Nom

Type

Définition par défaut

Description

Désactiver

NO_MERGE

InLeftOuters

Boolean

False

Désactive l'indicateur d'optimiseur NO_MERGE généré pour des requêtes Oracle.

En raison de problèmes techniques dans l'optimiseur de requêtes Oracle, certaines classes de requêtes utilisant des jointures externes gauche échouent ou retournent des résultats incorrects. Par conséquent, le traducteur de de requêtes Reporting Services utilise l'indicateur d'optimiseur NO_MERGE dans certaines jointures externes gauche. Si cette opération entraîne une exécution correcte des requêtes, les performances peuvent être compromises. Si vous obtenez une mise à jour logiciel d'Oracle qui résout ce problème, vous pouvez affecter la valeur True à ce changement pour désactiver la solution de contournement NO_MERGE.

EnableUnistr

Boolean

False

Ce changement force l'utilisation explicite de la fonction UNISTR pour représenter des littéraux Unicode dans des requêtes Oracle.

En règle générale, si les paramètres régionaux de la base de données correspondent à ceux des constantes de chaîne contenues dans la requête, les constantes de chaîne Unicode peuvent être générées comme chaînes ordinaires dans la requête. Lorsque vous utilisez des constantes de littéraux qui n'existent pas dans la page de codes définie par NLS_CharacterSet de la base de données Oracle, Oracle nécessite l'utilisation explicite de la fonction UNISTR pour représenter les littéraux Unicode. L'attribution de la valeur True dans le cadre de ce changement entraîne le codage de toutes les constantes de chaîne Unicode dans les requêtes à l'aide de la fonction Oracle UNISTR.  

DisableTS

Troncation

Boolean

False

Ce changement désactive la troncation explicite des fractions de secondes dans TIMESTAMP lors de la conversion en DATE.

En raison du comportement arrondi par défaut d'Oracle qui convertit les horodatages en dates, et du fait que certaines opérations de date nécessitent des dates plutôt que des horodatages, la seule manière d'assurer la précision de ces opérations est de tronquer explicitement des fractions de secondes à partir des types de données d'horodatage avant de les convertir en date. Cette troncation s'applique aussi aux dates car le traducteur de requêtes Oracle n'a pas accès aux informations de type Oracle sous-jacentes pour distinguer la date et l'horodatage. Cet aspect affecte peu les performances d'un grand nombre d'opérations de date. En l'absence de l'utilisation de l'horodatage dans une base de données cible, ce changement peut prendre la valeur True afin d'éviter la troncation.

EnableMath

OpCasting

Boolean

False

Le changement active la conversion des résultats d'opérations mathématiques au format décimal Microsoft.NET Framework.

Certaines opérations mathématiques dans les requêtes peuvent donner des valeurs décimales associent un niveau de précision et d'échelle qui ne peut pas être représenté dans le type de données décimal .NET Framework. Si vous pouvez convertir explicitement les résultats de ces expressions décimales au format décimal, il est peu probable que vos utilisateurs du Générateur de rapports sachent que cette opération est nécessaire au moment de la conception. Si ces expressions sont créées fréquemment, ce changement peut être affectée de la valeur True pour exécuter automatiquement la conversion nécessaire.