Accès à Oracle Database à l'aide d'Oracle Call Interface

Si vous utilisez des applications développées avec Oracle Call Interface (OCI), vous pouvez connecter des règles de chargement Essbase à Oracle Database à l'aide d'une chaîne de connexion OCI ou d'un nom de service réseau défini dans un fichier de configuration tnsnames.ora sur le serveur Essbase.

Propriétés de règle avec chaîne de connexion Oracle Call Interface

Pour connecter une règle de chargement Essbase à Oracle Database à l'aide d'une chaîne de connexion OCI,

  1. Dans l'interface Web Essbase, ouvrez une règle existante ou créez-en une nouvelle (reportez-vous à Accès aux règles et modification, Création d'une règle de construction de dimension ou Création d'une règle de chargement de données).

  2. Cliquez sur Propriétés de la source.


    Bouton Propriétés source dans l'éditeur de règles de l'interface Web Essbase

  3. Cliquez sur Propriétés SQL.

  4. Dans Propriétés, sélectionnez Oracle Call Interface (OCI).

  5. Dans le champ Serveur, entrez la chaîne de connexion Oracle Database au format <host>:<port>/<service_name>.

  6. Dans le champ Requête, entrez une requête SQL qui accède aux données dont vous avez besoin à partir d'Oracle Database.

  7. Dans les champs Nom utilisateur et Mot de passe, fournissez les informations d'identification requises pour accéder au schéma Oracle Database. Ces informations sont utilisées pour prévisualiser les données, mais ne seront pas enregistrées dans la règle.


    Boîte de dialogue Propriétés SQL. L'option Properties sélectionnée est OCI (Oracle Call Interface). Le champ Serveur contient la chaîne de connexion OCI au format DatabaseServerName:PortNumber/ServiceName. Un exemple de requête SQL figure dans le champ Requête. Un nom d'utilisateur et un mot de passe sont saisis.

  8. Cliquez sur Aperçu pour vous assurer que la règle peut se connecter et extraire des données, puis enregistrer et fermer la règle.

Règle de chargement avec Oracle Call Interface prédéfinie dans le fichier de configuration

Pour connecter une règle de chargement Essbase à Oracle Database à l'aide d'un nom_service_net défini dans un fichier de configuration sur le serveur Essbase,

  1. Sur le serveur Essbase, créez un fichier de configuration (par exemple, nommé tnsnames.ora) dans <Oracle Home>/network/admin.

    Si le fichier de configuration existe déjà, assurez-vous qu'il comporte une entrée valide pour la connexion à Oracle Database à l'aide d'Oracle Call Interface (OCI). Sinon, configurez-le maintenant. Dans l'exemple suivant,

    OCISQL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = oraclehost.example.com)(PORT = 1521))
        )
        (CONNECT_DATA =
          (service_name = orcl.example.com)
          (SERVER = DEDICATED)
        )
      )
    • net_service_name est OCISQL. Prenez note de ce nom, dont vous aurez besoin pour les prochaines étapes.
    • L'hôte est oraclehost.example.com.
    • Le port est 1521.
    • Le nom de service est orcl.example.com.
  2. Dans l'interface Web Essbase, ouvrez une règle de chargement de données ou de construction de dimension existante ou créez-en une nouvelle (reportez-vous à Accès aux règles et modification, Création d'une règle de construction de dimension ou Création d'une règle de chargement de données).

  3. Cliquez sur Propriétés de la source.


    Bouton Propriétés source dans l'éditeur de règles de l'interface Web Essbase

  4. Cliquez sur Propriétés SQL.

  5. Dans Propriétés, sélectionnez Oracle Call Interface (OCI).

  6. Dans le champ Serveur, entrez le nom net_service_name utilisé dans le fichier de configuration tnsnames.ora. En fonction de l'exemple donné à l'étape 1, entrez OCISQL.

  7. Dans le champ Requête, entrez une requête SQL qui accède aux données dont vous avez besoin à partir d'Oracle Database.

  8. Dans les champs Nom utilisateur et Mot de passe, fournissez les informations d'identification requises pour accéder au schéma Oracle Database. Ces informations sont utilisées pour prévisualiser les données, mais ne seront pas enregistrées dans la règle.


    Boîte de dialogue Propriétés SQL. L'option Properties sélectionnée est OCI (Oracle Call Interface). Le champ Serveur contient la connexion OCI net_service_name. Un exemple de requête SQL figure dans le champ Requête. Un nom d'utilisateur et un mot de passe sont saisis.

  9. Cliquez sur Aperçu pour vous assurer que la règle peut se connecter et extraire des données, puis enregistrer et fermer la règle.

Dépannage de la connectivité

Sous Windows, l'aperçu des données ou l'exécution d'une construction de dimension ou d'un chargement de données avec une règle qui utilise une chaîne de connexion Oracle Call Interface (OCI) peut échouer avec le message d'erreur suivant :

Attempt to connect to OCI failed. [ORA-12638: Credential retrieval failed].

Ce problème est dû au fait que le serveur Oracle Database version 19c et le client 19c (dans ce cas, le client est l'emplacement où Essbase Server est installé) n'ont pas de paramètre ou que le paramètre suivant est configuré dans tnsnames.ora (ou sqlnet.ora) : SQLNET.AUTHENTICATION_SERVICES=(NTS)

La solution consiste à configurer SQLNET.AUTHENTICATION_SERVICES=(NONE) sur l'ordinateur Essbase Server.

  1. Dans <Oracle Home>/network/admin, localisez le fichier de configuration.

  2. Ouvrez le fichier et ajoutez SQLNET.AUTHENTICATION_SERVICES=(NONE).

  3. Redémarrez l'application Essbase.

Remarques :

Reportez-vous aux notes d'utilisation de la documentation SQLNET.AUTHENTICATION_SERVICES pour Oracle Database 19c.