Instruksi berikut menunjukkan cara menghubungkan Oracle di Linux ke PostgreSQL. Untuk informasi lebih lanjut tentang DG4ODBC, lihat tutorial DG4ODBC kami.
- Unduh driver ODBC PostgreSQL 64-bit untuk Linux.
- Instal dan lisensikan driver PostgreSQL ODBC pada mesin tempat Oracle diinstal.
Untuk petunjuk penginstalan, lihat dokumentasi driver ODBC.
Catatan Anda memerlukan Pengelola Driver unixODBC yang diinstal pada mesin Anda. Distribusi Easysoft menyertakan versi Pengelola Driver unixODBC yang telah diuji dengan driver ODBC Easysoft PostgreSQL. Program pengaturan driver Easysoft memberi Anda opsi untuk menginstal unixODBC.
- Buat sumber data ODBC di /etc/odbc.ini yang terhubung ke database PostgreSQL yang ingin Anda akses dari Oracle. Misalnya:
[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
- Gunakan isql untuk menguji sumber data baru. Misalnya:
cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v POSTGRESQL_SAMPLE
Saat diminta, ketik "bantuan" untuk menampilkan daftar tabel. Untuk keluar, tekan kembali di baris prompt yang kosong.
Jika Anda tidak dapat terhubung, lihat artikel ini untuk mendapatkan bantuan.
- Buat file init DG4ODBC. Untuk melakukannya, ubah ke
hs/admin
subdirektori. Misalnya:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
Buat salinan file
initdg4odbc.ora
. Beri nama file baruinitpostgresql.ora
. - Pastikan parameter dan nilai ini ada di file init Anda:
HS_FDS_CONNECT_INFO = my_postgresql_odbc_dsn
Ganti my_postgresql_odbc_dsn dengan nama sumber data driver PostgreSQL ODBC yang terhubung ke server PostgreSQL target. Misalnya
HS_FDS_CONNECT_INFO = "POSTGRES_SAMPLE"
- Komentar baris yang memungkinkan penelusuran DG4ODBC. Misalnya:
#HS_FDS_TRACE_LEVEL = <trace_level>
- Tambahkan entri ke
listener.ora
yang membuat SID_NAME untuk DG4ODBC. Misalnya:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- Tambahkan entri DG4ODBC ke
tnsnames.ora
yang menentukan SID_NAME yang dibuat pada langkah sebelumnya. Misalnya:POSTGRESQL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = postgresql) ) (HS = OK) )
Ganti Oracle_host dengan nama host mesin Oracle Anda.
- Mulai (atau mulai ulang) Oracle Listener. Misalnya:
lsnrctl stop lsnrctl start
- Hubungkan ke database Oracle Anda di SQL*Plus.
- Dalam SQL*Plus, buat tautan database untuk server PostgreSQL target. Misalnya:
CREATE PUBLIC DATABASE LINK postgresqllink CONNECT TO "my_postgresql_user" IDENTIFIED by "my_postgresql_password" USING 'postgresql'; SELECT * from employees@postgresqllink
Catatan
- Jika Anda mengalami masalah saat menyambung ke PostgreSQL dari Oracle, aktifkan pelacakan DG4ODBC dan periksa file jejak yang ditulis ke
hs/log
direktori. Untuk mengaktifkan pelacakan DG4ODBC, tambahkan barisHS_FDS_TRACE_LEVEL = DEBUG
keinitpostgresql.ora
dan kemudian mulai/restart pendengar Oracle. Jikalog
direktori tidak ada, buatlah. Misalnya:mkdir log chmod +w log
- Jika Anda mendapatkan kesalahan "ORA-00997:penggunaan ilegal tipe data PANJANG", tambahkan salah satu entri berikut ke sumber data ODBC Anda:
DisguiseLong=1 # For non-Wide PostgreSQL long columns LimitLong=size in bytes # If this value is too big you will get ORA-00997
–Atau–
DisguiseWlong=1 LimitLong=size in bytes# If this value is too big you will get ORA-00997
- Jika Anda mendapatkan "ORA-28562:kesalahan pemotongan data Layanan Heterogen", saat bekerja dengan data PostgreSQL di Oracle, kami mungkin memiliki solusi untuk Anda, tetapi Anda perlu memahami implikasi penggunaannya. Untuk informasi lebih lanjut, hubungi tim Dukungan Easysoft ().