Herstellen einer Verbindung zu Oracle Server (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbankkonnektivität (FireDAC)

In diesem Thema wird beschrieben, wie eine Verbindung zu Oracle Server hergestellt wird.

Unterstützte Versionen

Der native FireDAC-Treiber unterstützt die Servereditionen Oracle Enterprise, Standard (ehemals Workgroup) und Express (ehemals Personal) Version 8.0.3 und höher. Eine detaillierte Beschreibung der Verwendung von Oracle in FireDAC für Delphi-Anwendungen finden Sie im Kapitel Verwenden von Oracle mit FireDAC.

Windows-Client-Software

Für FireDAC muss einer der folgenden x86- oder x64-Client-Softwaretypen von Oracle auf dem Arbeitsplatz-Computer installiert sein:

  • "Fat" Oracle-Client (Details) – Erfordert die Standardinstallation. Der Treiber verwendet den Client, der im primären Standardinstallationsverzeichnis (Oracle Home) installiert ist, falls nichts anderes angegeben ist.
  • "Thin" Oracle Instant Client (Details) – Der Treiber verwendet den Client, der entweder in einen in PATH angegebenen Ordner oder in den Anwendungs-EXE-Ordner kopiert wurde, falls nichts anderes angegeben ist. Siehe "Verwenden von Instant Client" weiter unten.

Wenn die Oracle-Client-Software nicht ordnungsgemäß installiert wurde, wird beim Verbindungsversuch eine Exception ausgelöst:

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

Verwenden von Instant Client

Um Instant Client zu installieren, laden Sie das Oracle Instant-x86- oder x64-Clientarchiv herunter, entpacken es und kopieren:

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

in Ihren Anwendungs-EXE-Ordner oder in einen in PATH angegebenen Ordner.

Wenn Sie TNS-Namen verwenden, speichern Sie die Datei tnsnames.ora im selben Ordner, oder setzen Sie die Eigenschaft TFDPhysOracleDriverLink.TNSAdmin auf einen Pfad zu einem Ordner, in dem tnsnames.ora enthalten ist, oder verwenden Sie den Treiberkonfigurationsparameter TNSAdmin.

Setzen Sie TFDPhysOracleDriverLink.NLSLang auf den erforderlichen Wert, oder verwenden Sie den Treiberkonfigurationsparameter NLSLang.

Linux-Client-Software

FireDAC benötigt:

  • die x86- oder x64-Client-Bibliothek libclntsh.so.

In diesem Artikel finden Sie Installationshinweise.

Mac OS X-Client-Software

FireDAC benötigt:

  • die x86-Client-Bibliothek libclntsh.dylib.

Sie können sie als Instant Client für Mac OS X (hier) herunterladen (Weitere Informationen). Extrahieren Sie den Inhalt, und kopieren Sie ihn mit den folgenden Befehlen in den Ordner "/usr/local/lib":

 
 sudo cp * /usr/local/lib
 sudo ln -s /usr/local/lib/libclntsh.dylib.10.1 /usr/local/lib/libclntsh.dylib
 

Sie können tnsnames.ora und sqlnet.ora mit dem folgenden Befehl in den Ordner "/etc" kopieren:

 
 sudo cp *.ora /etc
 

Treibereinbindung

So binden Sie den Treiber ein:

Verbindungsdefinitionsparameter

Für eine Verbindung mit einem Oracle-DBMS ist für die meisten Anwendungen die Angabe von DriverID, Database, User_Name und Password erforderlich.

DriverID=Ora

Parameter Beschreibung Beispielwert
Database Der Wert kann Folgendes sein:
  • TNS-Aliasname – legt fest, zu welcher Datenbank eine Verbindung hergestellt werden soll.
  • TNS-Verbindungs-Deskriptor – wie in TNSNames.ora.
  • Oracle-Verbindungsstring – wie in SQL*Plus.
  • Oracle-String für eine einfache Verbindung – wie hier beschrieben.
  • 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 Geben Sie Yes für die OS-Authentifizierung und No für die DBMS-Authentifizierung an. No
User_Name Der Oracle-Benutzername, wenn "OSAuthent=No". Scott
Password Das Oracle-Passwort, wenn "OSAuthent=No". tiger
AuthMode Der Oracle-Authentifizierungsmodus:
  • Normal – Standardbenutzer. Vorgabewert.
  • SysDBA – Benutzer mit Datenbankadministratorrechten.
  • SysOper – Benutzer mit Datenbankoperatorrechten.
Normal
CharacterSet Der Zeichensatz für die Verbindung. Wird diese Angabe weggelassen, wird der Wert der Variable NLS_LANG verwendet.
  • UTF8
  • cl8mswin1251
BooleanFormat Definiert, wie boolesche Werte dargestellt werden sollen:
  • Integer – stellt boolesche Werte als Integerwerte dar, wobei False = 0 und True = 1. Der Standardmodus.
  • String – stellt boolesche Werte als String-Werte dar, wobei False = 'F' und True = 'T'.
String
ApplicationName Name der Anwendung. Wenn angegeben, wird dieser Wert in der V$SESSION-Spalte MODULE gespeichert. AllBooks
OracleAdvanced Zusätzliche Oracle-Sitzungsoptionen. Einzelheiten dazu finden Sie in der Oracle-Dokumentation im Abschnitt "Initialization Parameters and ALTER SESSION" des KapitelsALTER SESSION SET. Ein Wertformat ist – <Option>=<Wert>[;...].
NewPassword Gibt das neue Oracle-Benutzerpasswort an. FireDAC stellt eine Verbindung zu der DB mit dem alten Passwort her und ändert es sofort in das neue. tiger2
MetaDefSchema Gibt das Standardschema für die Anwendung an. Im Entwurfszeitcode wird der Schemaname im Objektnamen weggelassen, wenn er MetaDefSchema entspricht. SCOTT

Anwendungsfälle

  • Herstellen einer Verbindung zu einer Datenbank mit dem vordefinierten TNS-Namen (in tnsnames.ora gespeichert):
 
 DriverID=Ora
 Database=ORA_920_APP
 User_Name=ADDemo
 Password=a
 
  • Herstellen einer Verbindung zu einer Datenbank mit Host-, Port- und Instanznamen-Infos:
 
 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
 
  • Herstellen einer Verbindung zu einer lokalen Datenbank als sysdba:
 
 DriverID=Ora
 User_Name=sys
 AuthMode=sysdba
 
  • Herstellen einer Verbindung zu einer Datenbank mit dem TNS-Namen und Ändern des Passworts:
 
 DriverID=Ora
 Database=ORA_920_APP
 User_Name=ADDemo
 Password=a
 NewPassword=b
 
  • Herstellen einer Verbindung zu einer Datenbank mit dem String für eine einfache Verbindung:
 
 DriverID=Ora
 Database=OraSrv:1521/orcl
 User_Name=ADDemo
 Password=a
 

Siehe auch