sql >> Database teknologi >  >> RDS >> Oracle

Forbinder Oracle til PostgreSQL

Følgende instruktioner viser dig, hvordan du forbinder Oracle på Linux til PostgreSQL. For yderligere information om DG4ODBC henvises til vores DG4ODBC tutorial.

  1. Download 64-bit PostgreSQL ODBC-driveren til Linux.
  2. Installer og licensér PostgreSQL ODBC-driveren på den maskine, hvor Oracle er installeret.

    Se ODBC-driverdokumentationen for installationsinstruktioner.

    Bemærk Du skal have unixODBC Driver Manager installeret på din maskine. Easysoft-distributionen inkluderer en version af unixODBC Driver Manager, som Easysoft PostgreSQL ODBC-driveren er blevet testet med. Easysoft-driveropsætningsprogrammet giver dig mulighed for at installere unixODBC.

  3. Opret en ODBC-datakilde i /etc/odbc.ini, der forbinder til den PostgreSQL-database, du vil have adgang til fra Oracle. For eksempel:
    [POSTGRES_SAMPLE]Driver=Easysoft ODBC-Postgres ServerDescription=Easysoft ODBC-Postgres ServerServer=192.0.2.1Port=5432Database=employeesUser=postgresPassword=p4550rdFigging=EnNoPressPassword=p4550rdNo 
  4. Brug isql til at teste den nye datakilde. For eksempel:
    cd /usr/local/easysoft/unixODBC/bin./isql.sh -v POSTGRESQL_SAMPLE

    Ved prompten skal du skrive "hjælp" for at få vist en liste over tabeller. For at afslutte skal du trykke på retur i en tom promptlinje.

    Hvis du ikke kan oprette forbindelse, skal du se denne artikel for at få hjælp.

  5. Opret en DG4ODBC init-fil. For at gøre dette skal du skifte til hs/admin undermappe. For eksempel:
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin

    Opret en kopi af filen initdg4odbc.ora . Navngiv den nye fil initpostgresql.ora .

  6. Sørg for, at disse parametre og værdier er til stede i din init-fil:
    HS_FDS_CONNECT_INFO =my_postgresql_odbc_dsn 

    Erstat my_postgresql_odbc_dsn med navnet på en PostgreSQL ODBC-driverdatakilde, der forbinder til mål-PostgreSQL-serveren. For eksempel

    HS_FDS_CONNECT_INFO ="POSTGRES_SAMPLE"
  7. Kommenter linjen, der aktiverer DG4ODBC-sporing. For eksempel:
    #HS_FDS_TRACE_LEVEL =
  8. Tilføj en post til listener.ora der opretter en SID_NAME for DG4ODBC. For eksempel:
    SID_LIST_LISTENER =(SID_LIST =(SID_DESC=(SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
  9. Tilføj en DG4ODBC-post til tnsnames.ora der specificerer SID_NAME oprettet i det forrige trin. For eksempel:
    POSTGRESQL =(DESCRIPTION =(ADRESSE =(PROTOKOL =TCP))(HOST =oracle_host )(PORT =1521)) (CONNECT_DATA =(SID =postgresql) ) (HS =OK) )

    Erstat oracle_host med værtsnavnet på din Oracle-maskine.

  10. Start (eller genstart) Oracle Listener. For eksempel:
    lsnrctl stoplsnrctl start
  11. Opret forbindelse til din Oracle-database i SQL*Plus.
  12. I SQL*Plus skal du oprette et databaselink til mål-PostgreSQL-serveren. For eksempel:
    OPRET OFFENTLIG DATABASE LINK postgresqllink FORBIND TIL"my_postgresql_user" IDENTIFICERET af "my_postgresql_password" VED HJÆLP AF 'postgresql';VÆLG * fra medarbejdere@postgresqllink
Bemærkninger
  • Hvis du har problemer med at oprette forbindelse til PostgreSQL fra Oracle, skal du aktivere DG4ODBC-sporing og kontrollere sporingsfilerne skrevet til hs/log vejviser. For at aktivere DG4ODBC-sporing skal du tilføje linjen HS_FDS_TRACE_LEVEL = DEBUG til initpostgresql.ora og start/genstart derefter Oracle-lytteren. Hvis log bibliotek eksisterer ikke, opret det. For eksempel:
    mkdir logchmod +w log
  • Hvis du får fejlmeddelelsen "ORA-00997:ulovlig brug af LONG datatype", skal du tilføje en af ​​følgende indgange til din ODBC-datakilde:
    DisguiseLong=1 # For non-Wide PostgreSQL lange kolonnerLimitLong=størrelse i bytes # Hvis denne værdi er for stor, får du ORA-00997

    –Eller–

    DisguiseWlong=1LimitLong=størrelse i bytes # Hvis denne værdi er for stor, får du ORA-00997
  • Hvis du får "ORA-28562:Heterogene Services data trunkeringsfejl", når du arbejder med PostgreSQL-data i Oracle, har vi muligvis en løsning til dig, men du skal forstå implikationerne af at bruge det. For mere information, kontakt Easysoft Support-teamet ().

  1. At have gruppe efter klausuler - elein's GeneralBits

  2. PostgreSQL dato() med tidszone

  3. MySQL DEGREES() Funktion – Konverter fra radianer til grader

  4. Materialiseret visning vs. tabeller:Hvad er fordelene?