Herstellen einer Verbindung zu Oracle Server (FireDAC)
Nach oben zu Datenbankkonnektivität (FireDAC)
In diesem Thema wird beschrieben, wie eine Verbindung zu Oracle Server hergestellt wird.
Inhaltsverzeichnis
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".
Client-Software
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 (EN)) -- 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 (EN)) -- 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:
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
- oraons.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.
macOS-Client-Software
FireDAC benötigt:
- die x86-Client-Bibliothek libclntsh.dylib.
Sie können sie als Instant Client für macOS (hier) herunterladen.
Zur Installation auf Linux, lesen Sie die folgenden Artikel:
- Instant Client Installation (EN) - für Basisinstallationsschritte für Oracle Instant Client;
- SQL*Plus Instant Client - für erweiterte Konfigurationen für Oracle Instant Client, inklusive der Konfiguration von Sprach- und TNS-Parametern.
Linux-Client-Software
Um die Linux-Client-Bibliothek zu installieren:
-
Installieren Sie die libaio-Bibliothek:
- Auf Ubuntu Server 16.04 LTS, führen Sie aus:
sudo apt-get install libaio1
- Auf Red Hat Enterprise Linux 7, führen Sie aus:
sudo yum install libaio
- Auf Ubuntu Server 16.04 LTS, führen Sie aus:
-
Installieren Sie Instant Client für Linux wie in den folgenden Artikeln beschrieben wird:
- Instant Client Installation (EN) - für Basisinstallationsschritte für Oracle Instant Client.
- SQL*Plus Instant Client (EN) - für erweiterte Konfigurationen für Oracle Instant Client, inklusive der Konfiguration von Sprach- und TNS-Parametern.
Treibereinbindung
So binden Sie den Treiber ein:
- Ziehen Sie aus der Paletten-Seite "FireDAC Links" eine TFDPhysOracleDriverLink-Komponente auf das Formular.
- Oder nehmen Sie die Unit FireDAC.Phys.Oracle in eine uses-Klausel auf.
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 (weitere Details finden Sie unter Definieren von Verbindungen (FireDAC)).
DriverID=Ora
Parameter | Beschreibung | Beispielwert |
---|---|---|
Database |
Der Wert kann Folgendes sein:
|
|
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 |
ReadTimeout | Legt den Wert der Zeitüberschreitung in Millisekunden für Erhalt- oder Leseoperationen fest.
Das Festlegen von Null bedeutet keine Zeitüberschreitung.
|
|
WriteTimeout | Legt den Wert der Zeitüberschreitung in Millisekunden für den Datenbank-Server fest, um um eine Sendeoperation an die Clients abzuschließen.
Das Festlegen von Null bedeutet keine Zeitüberschreitung.
|
|
CharacterSet | Der Zeichensatz für die Verbindung. Wird diese Angabe weggelassen, wird der Wert der Variable NLS_LANG verwendet. |
|
BooleanFormat |
Definiert, wie boolesche Werte dargestellt werden sollen:
|
Choose |
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 im Kapitel ALTER SESSION SET (EN), im Abschnitt "Initialization Parameters and ALTER SESSION". Ein Wertformat ist - <option>=<value>[;...]. | |
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