Följande instruktioner visar hur du ansluter Oracle på Linux till PostgreSQL. För ytterligare information om DG4ODBC, se vår DG4ODBC handledning.
- Ladda ner 64-bitars PostgreSQL ODBC-drivrutinen för Linux.
- Installera och licensiera PostgreSQL ODBC-drivrutinen på maskinen där Oracle är installerat.
För installationsinstruktioner, se dokumentationen för ODBC-drivrutinen.
Obs Du behöver unixODBC Driver Manager installerad på din maskin. Easysoft-distributionen inkluderar en version av unixODBC Driver Manager som Easysoft PostgreSQL ODBC-drivrutinen har testats med. Easysofts drivrutinsinstallationsprogram ger dig möjlighet att installera unixODBC.
- Skapa en ODBC-datakälla i /etc/odbc.ini som ansluter till den PostgreSQL-databas som du vill komma åt från Oracle. Till exempel:
[POSTGRES_SAMPLE]Driver=Easysoft ODBC-Postgres ServerDescription=Easysoft ODBC-Postgres ServerServer=192.0.2.1Port=5432Database=employeesUser=postgresPassword=p4550rdFigging=EnNoLlogging=EnNocryptFigging
- Använd isql för att testa den nya datakällan. Till exempel:
cd /usr/local/easysoft/unixODBC/bin./isql.sh -v POSTGRESQL_SAMPLE
Vid prompten skriver du "hjälp" för att visa en lista med tabeller. För att avsluta, tryck på retur i en tom uppmaningsrad.
Om du inte kan ansluta, se den här artikeln för hjälp.
- Skapa en DG4ODBC init-fil. För att göra detta, ändra till
hs/admin
underkatalog. Till exempel:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
Skapa en kopia av filen
initdg4odbc.ora
. Namnge den nya fileninitpostgresql.ora
. - Se till att dessa parametrar och värden finns i din init-fil:
HS_FDS_CONNECT_INFO =my_postgresql_odbc_dsn
Ersätt my_postgresql_odbc_dsn med namnet på en PostgreSQL ODBC-drivrutinsdatakälla som ansluter till målservern för PostgreSQL. Till exempel
HS_FDS_CONNECT_INFO ="POSTGRES_SAMPLE"
- Kommentera raden som möjliggör DG4ODBC-spårning. Till exempel:
#HS_FDS_TRACE_LEVEL =
- Lägg till en post i
listener.ora
som skapar en SID_NAME för DG4ODBC. Till exempel:SID_LIST_LISTENER =(SID_LIST =(SID_DESC=(SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- Lägg till en DG4ODBC-post i
tnsnames.ora
som anger SID_NAME som skapades i föregående steg. Till exempel:POSTGRESQL =(DESCRIPTION =(ADRESS =(PROTOKOL =TCP))(HOST =oracle_host )(PORT =1521)) (CONNECT_DATA =(SID =postgresql) ) (HS =OK) )
Ersätt oracle_host med värdnamnet för din Oracle-maskin.
- Starta (eller starta om) Oracle Listener. Till exempel:
lsnrctl stoplsnrctl start
- Anslut till din Oracle-databas i SQL*Plus.
- I SQL*Plus, skapa en databaslänk för mål-PostgreSQL-servern. Till exempel:
SKAPA OFFENTLIG DATABASLÄNK postgresqllink ANSLUTA TILL"my_postgresql_user" IDENTIFIERAD av "my_postgresql_password" MED 'postgresql';VÄLJ * från anställda@postgresqllink
Anteckningar
- Om du har problem med att ansluta till PostgreSQL från Oracle, aktivera DG4ODBC-spårning och kontrollera spårningsfilerna som skrivits till
hs/log
katalog. För att aktivera DG4ODBC-spårning, lägg till radenHS_FDS_TRACE_LEVEL = DEBUG
tillinitpostgresql.ora
och starta/starta om Oracle-lyssnaren. Omlog
katalogen finns inte, skapa den. Till exempel:mkdir logchmod +w log
- Om du får felmeddelandet "ORA-00997:illegal användning av LONG datatyp", lägg till en av följande poster till din ODBC-datakälla:
DisguiseLong=1 # For non-Wide PostgreSQL long columnsLimitLong=size i byte # Om detta värde är för stort får du ORA-00997
–Eller–
DisguiseWlong=1LimitLong=storlek i byte # Om detta värde är för stort får du ORA-00997
- Om du får "ORA-28562:Heterogeneous Services data trunkeringsfel", när du arbetar med PostgreSQL-data i Oracle, kan vi ha en lösning för dig, men du måste förstå konsekvenserna av att använda den. För mer information, kontakta Easysofts supportteam ().