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 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 :

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 :
  • 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.
  • 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.
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.
  • UTF8
  • cl8mswin1251
BooleanFormat Définit comment représenter les valeurs booléennes :
  • Integer -- représente les booléens sous forme d'entiers, où False = 0 et True = 1 (mode par défaut).
  • String -- représente les booléens sous forme de chaînes, où False = 'F' et True = 'T'.
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
 

Voir aussi