Connexion à Oracle Server (FireDAC)
Remonter à Connectivité des bases de données (FireDAC)
Cette rubrique explique comment établir une connexion à Oracle Server.
Sommaire
Versions supportées
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 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) : 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 (informations détaillées) : 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 or 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 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 du pilote NLSLang.
Logiciel client Linux
FireDAC requiert :
- la bibliothèque client libclntsh.so x86 ou x64.
Pour l'installer sous Linux, lisez cet article.
Logiciel client Mac OS X
FireDAC requiert :
- la bibliothèque client libclntsh.dylib x86.
Vous pouvez la télécharger en tant qu'Instant Client pour Mac OS X ici (davantage d'informations). Ensuite, extrayez et copiez le contenu dans le dossier /usr/local/lib, à l'aide des commandes :
sudo cp * /usr/local/lib sudo ln -s /usr/local/lib/libclntsh.dylib.10.1 /usr/local/lib/libclntsh.dylib
Vous pouvez placer tnsnames.ora et sqlnet.ora dans le dossier /etc, à l'aide de la commande :
sudo cp *.ora /etc
Liaison du pilote
Pour lier le pilote :
- Déposez un composant TFDPhysOracleDriverLink à partir de la page "FireDAC Links" de la palette.
- Ou incluez l'unité FireDAC.Phys.Oracle dans une clause uses.
Paramètres de définition de la connexion
Pour se connecter à un SGBD Oracle, la plupart des applications vous demandent de spécifier DriverID, Database, User_Name et Password.
DriverID=Ora
Paramètre | Description | Valeur exemple |
---|---|---|
Database | 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 |
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 :
|
String |
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, 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 |
Exemples 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