Wie füge ich bei Windows 10 eine ODBC Quelle für ORACLE hinzu, und wie kann man mit dem SQL Management Studio über Linked Server eine ORACLE Datenbank abfragen? Hier eine kurze Anleitung …
Vorbereitungen
Installation
Folgende Software wird benötigt, damit eine ODBC Verbindung, bzw mit dem SQL Management Studio über Linked Server, zu einer Oracle Datenbank erstellt werden kann. Leider muss man einen Account bei ORACLE anlegen.
- Installation Oracle Data Access Components (ODAC)
(64-bit ODAC 12c Release 4 (12.1.0.2.4) for Windows x64) - Installation Instant Client Basic für Windows 64
(Instant Client Package – Basic: All files required to run OCI, OCCI, and JDBC-OCI applications)- Kopieren der Dateien unter F:\[Installationspfad]\instanclient_12_1\
- Installation Instant Client Package – ODBC
(Instant Client Package – ODBC: Additional libraries for enabling ODBC applications)- Kopieren der Dateien unter F:\[Installationspfad]\instanclient_12_1\
- CMD mit Administrator Rechten öffnen
- odbc_install.exe aufrufen
Konfiguration
Damit die Konfigurationen über ORACLE Datenbankserver gefunden werden können, muss der Pfad in den Umgebungsvariablen mit der Variable TNS_ADMIN eingetragen werden. Wichtig dabei ist, es unter „Systemvariablen“ und NICHT unter „Benutzervariablen“ einzutragen!
Wie trage ich etwas in den Umgebungsvariablen ein?
- mit rechte Maustaste auf das Windowssymbol (links unten in der Taskleiste) klicken
- System
- Erweiterte Systemeinstellungen
- Umgebungsvariablen
- Systemvariablen -> NEU
Hinzufügen des Parameters
Hinzufügen des Parameters TNS_Admin mit dem Pfad „F:\[Installationspfad]\app\client\Username\product\12.1.0\client_1\Network\Admin“.
Erstellen der Datei tnsnames.ora
Im Verzeichnis, dass unter TNS_ADMIN angegeben wurde, muss eine Datei „tnsnames.ora“ erstellt werden, mit folgendem Inhalt:
ALIASNAME = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myserver.mycompany.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = servicename) ) )
Wobei „ALIASNAME“, „myserver.mycompany.com“ und „servicename“ angepasst gehören.
Desweiteren muss es noch die Datei sqlnet.ora geben, mit folgendem Inhalt:
# Every line that begins with # is a comment line # You can modify the entry below for your own database. # sqlnet.ora Network Configuration File SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ODBC Quelle hinzufügen
- ODBC-Datenquellen einrichten (64Bit) öffnen
- Tab System-DNS
- Hinzufügen
- Auswählen von „Oracle in instantclient_12_1 „
- Fertigstellen
- Data Source Name: frei wählbar
- Description: frei wählbar
- TNS Service Name: Hier müssten die ALIAS Namen aus der Datei tnsnames.ora aufscheinen, und es muss eine Konfiguration ausgewählt werden.
- User ID: Benutzername
Linked Server hinzufügen
Vorbereitungen
Unter Providers muss OraOLEDB.Oracle zu finden sein, …
und folgendes unter Eigenschaften geändert werden …
Linked Server erstellen
Page General
- Linked Server: frei wählbar
- Provider: Oracle Provider for OLE DB
- Product Name: Oracle
- Data Source: ALIASNAME
- Provider String: ALIASNAME
Page Security
- Auswählen von „Be made using this security context:“
- Benutzername unter „Remote login“
- Passwort unter „With password“ eingeben.
Fehlermeldungen
- Eine Instanz der OLE DB-Anbieters „OraOLEDB.Oracle“ für den Verbindungserver „xxxxx“ kann nicht erstellt werden. Error 7302
- Leider ist ein Neustart nötig.
- Der OLE DB-Anbieter „OraOLEDB.Oravle“ für den Verbingsserver „xxxx“ aht die Meldung „ORA-01017:invalid username/password;logon denied“
- Unter „Security“, „Be made using this security context“ auswählen und Remote „login“ und „With password“ mit Username und Passwort ausfüllen.
Quellen
- How to get up and running with Oracle and Linked Servers
https://blogs.msdn.microsoft.com/psssql/2015/07/31/how-to-get-up-and-running-with-oracle-and-linked-servers/
Alle Angaben ohne Gewähr!