Die folgende Anleitung zeigt Ihnen, wie Sie Oracle unter Linux mit PostgreSQL verbinden. Weitere Informationen zu DG4ODBC finden Sie in unserem DG4ODBC-Tutorial.
- Laden Sie den 64-Bit-PostgreSQL-ODBC-Treiber für Linux herunter.
- Installieren und lizenzieren Sie den PostgreSQL-ODBC-Treiber auf dem Computer, auf dem Oracle installiert ist.
Installationsanweisungen finden Sie in der ODBC-Treiberdokumentation.
Hinweis Sie müssen den unixODBC-Treibermanager auf Ihrem Computer installieren. Die Easysoft-Distribution enthält eine Version des unixODBC-Treibermanagers, mit dem der Easysoft PostgreSQL-ODBC-Treiber getestet wurde. Das Setup-Programm des Easysoft-Treibers bietet Ihnen die Möglichkeit, unixODBC zu installieren.
- Erstellen Sie eine ODBC-Datenquelle in /etc/odbc.ini, die eine Verbindung zu der PostgreSQL-Datenbank herstellt, auf die Sie von Oracle aus zugreifen möchten. Beispiel:
[POSTGRES_SAMPLE] Driver=Easysoft ODBC-Postgres Server Description=Easysoft ODBC-Postgres Server Server=192.0.2.1 Port=5432 Database=employees User=postgres Password=p4550rd Logging=No LogFile= Encrypt=No
- Verwenden Sie isql, um die neue Datenquelle zu testen. Beispiel:
cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v POSTGRESQL_SAMPLE
Geben Sie an der Eingabeaufforderung „help“ ein, um eine Liste mit Tabellen anzuzeigen. Drücken Sie zum Beenden die Eingabetaste in einer leeren Eingabeaufforderungszeile.
Wenn Sie keine Verbindung herstellen können, finden Sie Hilfe in diesem Artikel.
- Erstellen Sie eine DG4ODBC-Init-Datei. Wechseln Sie dazu in den
hs/admin
Unterverzeichnis. Beispiel:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
Erstellen Sie eine Kopie der Datei
initdg4odbc.ora
. Benennen Sie die neue Dateiinitpostgresql.ora
. - Stellen Sie sicher, dass diese Parameter und Werte in Ihrer Init-Datei vorhanden sind:
HS_FDS_CONNECT_INFO = my_postgresql_odbc_dsn
Ersetzen Sie my_postgresql_odbc_dsn mit dem Namen einer PostgreSQL-ODBC-Treiberdatenquelle, die eine Verbindung zum PostgreSQL-Zielserver herstellt. Zum Beispiel
HS_FDS_CONNECT_INFO = "POSTGRES_SAMPLE"
- Kommentieren Sie die Zeile aus, die die DG4ODBC-Ablaufverfolgung aktiviert. Beispiel:
#HS_FDS_TRACE_LEVEL = <trace_level>
- Fügen Sie einen Eintrag zu
listener.ora
hinzu die einen SID_NAME für DG4ODBC erstellt. Zum Beispiel:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- Fügen Sie einen DG4ODBC-Eintrag zu
tnsnames.ora
hinzu die den im vorherigen Schritt erstellten SID_NAME angibt. Zum Beispiel:POSTGRESQL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = postgresql) ) (HS = OK) )
Ersetzen Sie oracle_host durch den Hostnamen Ihres Oracle-Rechners.
- Starten (oder starten) Sie den Oracle Listener. Beispiel:
lsnrctl stop lsnrctl start
- Verbinden Sie sich mit Ihrer Oracle-Datenbank in SQL*Plus.
- Erstellen Sie in SQL*Plus einen Datenbanklink für den PostgreSQL-Zielserver. Zum Beispiel:
CREATE PUBLIC DATABASE LINK postgresqllink CONNECT TO "my_postgresql_user" IDENTIFIED by "my_postgresql_password" USING 'postgresql'; SELECT * from employees@postgresqllink
Notizen
- Wenn Sie Probleme beim Herstellen einer Verbindung zu PostgreSQL von Oracle haben, aktivieren Sie die DG4ODBC-Ablaufverfolgung und überprüfen Sie die Ablaufverfolgungsdateien, die in
hs/log
geschrieben werden Verzeichnis. Um die DG4ODBC-Ablaufverfolgung zu aktivieren, fügen Sie die ZeileHS_FDS_TRACE_LEVEL = DEBUG
hinzu zuinitpostgresql.ora
und starten / starten Sie dann den Oracle-Listener neu. Wenn daslog
Verzeichnis existiert nicht, erstellen Sie es. Beispiel:mkdir log chmod +w log
- Wenn Sie den Fehler „ORA-00997:illegal use of LONG datatype“ erhalten, fügen Sie einen der folgenden Einträge zu Ihrer ODBC-Datenquelle hinzu:
DisguiseLong=1 # For non-Wide PostgreSQL long columns LimitLong=size in bytes # If this value is too big you will get ORA-00997
–Oder–
DisguiseWlong=1 LimitLong=size in bytes# If this value is too big you will get ORA-00997
- Wenn Sie beim Arbeiten mit PostgreSQL-Daten in Oracle „ORA-28562:Heterogeneous Services data truncation error“ erhalten, haben wir möglicherweise eine Problemumgehung für Sie, aber Sie müssen die Auswirkungen ihrer Verwendung verstehen. Wenden Sie sich für weitere Informationen an das Easysoft Support-Team ().