Connexion à Oracle Server (FireDAC)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Connectivité des bases de données (FireDAC)

Cette rubrique explique comment établir une connexion à Oracle Server.

Versions prises en charge

Le pilote natif FireDAC supporte les éditions Server Oracle Enterprise, Standard (ex Workgroup) et Express (ex Personal) version 8.0.3 et ultérieure. Pour en savoir plus sur l'utilisation d'Oracle dans FireDAC pour l'application Delphi, consultez "Utilisation d'Oracle avec FireDAC".

Logiciel client

Logiciel client Windows

FireDAC requiert l'installation de l'un des types de logiciel client Oracle x86 ou x64 suivants sur la station de travail :

  • "Client Oracle "lourd" (informations détaillées (EN)) : requiert la procédure d'installation standard. Sauf indication contraire, le pilote utilise le client installé sur l'écran d'accueil Oracle principal.
  • "Client "léger" Oracle Instant Client (informations détaillées (EN)) : le pilote utilise le client, qui est copié dans un dossier situé dans la variable PATH ou, sauf indication contraire, dans le dossier EXE de l'application. Voir "Utilisation d'Instant Client" plus loin.

Si le logiciel client Oracle n'a pas été installé correctement, une exception est déclenchée quand vous essayez de vous connecter :

[FireDAC][Phys][Ora]-1309. OCI is not properly installed on this machine (NOE1/INIT)

Utilisation d'Instant Client

Pour installer Instant Client, téléchargez l'archive du client Oracle Instant x86 ou x64, décompressez-la et copiez les fichiers :

  • oci.dll
  • oraocci11.dll
  • oraociei11.dll
  • orasql11.dll

dans le dossier EXE de votre application ou dans un dossier de la variable PATH.

Si vous utilisez des noms TNS, placez le fichier tnsnames.ora dans le même dossier ou définissez la valeur de la propriété TFDPhysOracleDriverLink.TNSAdmin sur un chemin de dossier avec tnsnames.ora ou utilisez le paramètre de configuration de pilote TNSAdmin.

Définissez TFDPhysOracleDriverLink.NLSLang sur la valeur requise ou utilisez le paramètre de configuration de pilote NLSLang.

Logiciel client macOS

FireDAC requiert :

  • la bibliothèque client libclntsh.dylib x86.

Vous pouvez la télécharger en tant qu'Instant Client pour macOS (ici).

Pour l'installer sous Linux, lisez ces articles :

Logiciel client Linux

Pour installer la bibliothèque client Linux :

  1. Installez la bibliothèque libaio :
    • Sur Ubuntu Server 16.04 LTS, exécutez :
      sudo apt-get install libaio1
    • Sur Red Hat Enterprise Linux 7, exécutez :
      sudo yum install libaio
  2. Installez l'Instant Client pour Linux tel comme décrit dans l'un des articles suivants :

Liaison du pilote

Pour lier le pilote :

Paramètres de définition de la connexion

Pour établir la connexion au SGBD Oracle, la plupart des applications vous demandent de spécifier les paramètres DriverID, Database, User_Name et Password (voir Définition d'une connexion (FireDAC) pour plus de détails).

DriverID=Ora

Paramètre Description Valeur exemple
Base de données

Ce paramètre peut avoir l'une des valeurs suivantes :

  • TNS alias name -- indique à quelle base de données se connecter.
  • TNS connection descriptor -- tel que dans TNSNames.ora.
  • Oracle connection string -- tel que dans SQL*Plus.
  • Oracle easy connect string -- tel que décrit ici (EN).
  • OraSrv
  • (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = OraSrv)(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl)))
  • scott/tiger@OraSrv
  • system/manager@OraSrv as sysdba
  • OraSrv:1521/orcl
OSAuthent Utilisez la valeur Yes pour utiliser l'authentification OS ou No pour utiliser l'authentification SGBD. No
User_Name Nom d'utilisateur Oracle, si OSAuthent=No. Scott
Password Mot de passe Oracle, si OSAuthent=No. tiger
AuthMode

Mode d'authentification Oracle :

  • Normal -- utilisateur standard. Valeur par défaut.
  • SysDBA -- utilisateur avec privilèges d'administrateur de base de données.
  • SysOper -- utilisateur avec privilèges d'opérateur de base de données.
  • SysASM -- utilisateur avec des privilèges d'administrateur de bases de données pour les instances d'ASM Oracle (Automatic Storage Management (EN)).
  • SysBackup -- utilisateur avec des privilèges d'administrateur de bases de données pour les opérations de sauvegarde et de restauration (Backup and Recovery (EN)).
  • SysDG -- utilisateur avec des privilèges d'administrateur de bases de données pour les opérations Oracle relatives à Data Guard (EN).
  • SysKM -- utilisateur avec des privilèges d'administrateur de bases de données pour les opérations de stockage de clés et de cryptage (Transparent Data Encryption (EN)).
Remarque : Pour de plus amples informations, voir Oracle Database Administrator's Guide (EN).
Normal
ReadTimeout Spécifie le délai d'attente en millisecondes pour les opérations de réception et de lecture.

La valeur zéro signifie qu'il n'y a pas de délai d'attente.

Remarque : Utilisez ce paramètre dans les environnements sur lesquels les clients sont susceptibles de se fermer occasionnellement, délibérément ou de façon intempestive. Sinon, le serveur de base de données peut continuer à attendre des données de clients fermés ou rencontrant des difficultés.
WriteTimeout Spécifie le délai d'attente en millisecondes pour que le serveur de base de données achève les opérations d'envoi aux clients.

La valeur zéro signifie qu'il n'y a pas de délai d'attente.

Remarque : Utilisez ce paramètre dans les environnements sur lesquels les clients sont susceptibles de se fermer occasionnellement, délibérément ou de façon intempestive. Sinon, le serveur de base de données peut continuer à envoyer des réponses aux clients indisponibles.
CharacterSet Jeu de caractères de la connexion. S'il n'est pas spécifié, la valeur de la variable NLS_LANG est utilisée.
  • UTF8
  • cl8mswin1251
BooleanFormat

Définit comment représenter les valeurs booléennes :

  • Choose -- utilise le type booléen pour représenter les paramètres booléens PL/SQL. C'est le mode par défaut.
    Remarque : Cela s'applique à Oracle 12c ou ultérieur. Pour les versions antérieures d'Oracle, le type Integer est utilisé lors de la sélection de Choose.
  • Integer -- utilise le type Integer pour représenter des paramètres booléens PL/SQL où False = 0 et True = 1.
  • String -- utilise le type String pour représenter les paramètres booléens PL/SQL où False = 'F' et True = 'T'.
Choose
ApplicationName Nom de l'application. Si cette valeur est spécifiée, elle est stockée dans la colonne MODULE de V$SESSION. AllBooks
OracleAdvanced Autres options des sessions Oracle. Pour plus de détails, consultez ALTER SESSION SET (EN), paragraphe "Initialization Parameters and ALTER SESSION". La valeur a pour format - <option>=<valeur>[;...].
NewPassword Spécifie le nouveau mot de passe utilisateur Oracle. FireDAC se connecte à la base de données à l'aide de l'ancien mot de passe et le remplace immédiatement par le nouveau. tiger2
MetaDefSchema Spécifie le schéma par défaut de l'application. En mode conception, le code omet le nom du schéma dans les noms d'objet, s'il est égal à MetaDefSchema. SCOTT

Cas d'utilisation

  • Connexion à une base de données en utilisant le nom TNS prédéfini (stocké dans tnsnames.ora) :


DriverID=Ora
Database=ORA_920_APP
User_Name=ADDemo
Password=a
  • Connexion à une base de données en utilisant le nom de l'hôte, du port et de l'instance :


DriverID=Ora
Database=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = OraSrv)(PORT = 1521)))
(CONNECT_DATA = (SERVER =    DEDICATED)(SERVICE_NAME = orcl)))
User_Name=ADDemo
Password=a
  • Connexion à une base de données locale en tant que sysdba :


DriverID=Ora
User_Name=sys
AuthMode=sysdba
  • Connexion à une base de données en utilisant le nom TNS et modification du mot de passe :


DriverID=Ora
Database=ORA_920_APP
User_Name=ADDemo
Password=a
NewPassword=b
  • Connexion à une base de données en utilisant une chaîne EZConnect (easy connect) :


DriverID=Ora
Database=OraSrv:1521/orcl
User_Name=ADDemo
Password=a

Voir aussi