Connexion à Oracle Server (FireDAC)
Remonter à Connectivité des bases de données (FireDAC)
Cette rubrique explique comment établir une connexion à Oracle Server.
Sommaire
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 :
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 :
- Instant Client Installation (EN) - étapes élémentaires pour l'installation de Oracle Instant Client ;
- SQL*Plus Instant Client (EN) - pour une configuration avancée de Oracle Instant Client, comprenant notamment les paramètres TNS et le langage.
Logiciel client Linux
Pour installer la bibliothèque client Linux :
-
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
- Sur Ubuntu Server 16.04 LTS, exécutez :
-
Installez l'Instant Client pour Linux tel comme décrit dans l'un des articles suivants :
- Instant Client Installation (EN) - étapes élémentaires pour l'installation de Oracle Instant Client ;
- SQL*Plus Instant Client (EN) - pour une configuration avancée de Oracle Instant Client, comprenant notamment les paramètres TNS et le langage.
Liaison du pilote
Pour lier le pilote :
- Déposez un composant TFDPhysOracleDriverLink à partir de la page "Liens FireDAC" de la palette de composants.
- Ou incluez l'unité FireDAC.Phys.Oracle dans une clause uses.
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 :
|
|
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 |
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.
|
|
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.
|
|
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. |
|
BooleanFormat |
Définit comment représenter les valeurs booléennes :
|
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