sql >> Databáze >  >> RDS >> Oracle

Připojení Oracle 21c k SQL Serveru

Použijte ovladač SQL Server ODBC s agentem Oracle Heterogeneous Services ODBC, DG4ODBC, k připojení Oracle 21c k SQL Serveru.

  1. Zkontrolujte, zda je vaše verze DG4ODBC 32bitová nebo 64bitová:
    file dg4odbc

    Pokud file výstup příkazu obsahuje "ELF 64-bit LSB executable" nebo něco podobného, ​​DG4ODBC je 64-bit a musíte použít 64bitovou verzi ovladače SQL Server ODBC.

    Jinak si stáhněte 32bitový SQL Server ODBC ovladač pro vaši platformu.

  2. Nainstalujte, licencujte a otestujte ovladač SQL Server ODBC na počítači, kde je nainstalován DG4ODBC.

    Pokyny k instalaci naleznete v dokumentaci ovladače SQL Server ODBC. V dokumentaci zjistíte, které proměnné prostředí je třeba nastavit (LD_LIBRARY_PATH , LIBPATH , LD_RUN_PATH nebo SHLIB_PATH v závislosti na platformě a linkeru).

  3. Vytvořte inicializační soubor DG4ODBC. Například:
    cd $ORACLE_HOME/hs/admin
    cp initdg4odbc.ora initmssql.ora
  4. Ujistěte se, že ve vašem init souboru jsou tyto parametry a hodnoty:
    HS_FDS_CONNECT_INFO = my_sql_server_odbc_dsn
    HS_FDS_SHAREABLE_NAME = /usr/local/easysoft/unixODBC/lib/libodbc.so
    HS_LANGUAGE = AMERICAN_AMERICA.WE8ISO8859P1 
    

    Nahraďte my_sql_server_odbc_dsn s názvem zdroje dat ovladače SQL Server ODBC, který se připojuje k cílové databázi SQL Server.

  5. Přidat záznam do $ORACLE_HOME/network/admin/listener.ora který vytvoří SID_NAME pro DG4ODBC. Například:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=dg4odbc)
         (ENVS=LD_LIBRARY_PATH = /usr/local/easysoft/unixODBC/lib:
                /usr/local/easysoft/lib)
       )
     )
    

    Nahraďte oracle_home_directory s hodnotou $ORACLE_HOME .

  6. Přidejte záznam DG4ODBC na $ORACLE_HOME/network/admin/tnsnames.ora který určuje SID_NAME vytvořený v předchozím kroku. Například:
    MSSQL=
     (DESCRIPTION=
       (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
       (CONNECT_DATA= (SID=mssql))
       (HS=OK)
     )
  7. Spusťte (nebo restartujte) Oracle Listener:
    cd $ORACLE_HOME/bin
    ./lsnrctl stop
    ./lsnrctl start
  8. Připojte se ke své databázi Oracle v SQL*Plus.
  9. V SQL*Plus vytvořte odkaz na databázi pro cílovou databázi SQL Server. Například:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "dbuser" IDENTIFIED BY "dbpassword" using 'MSSQL';

    Nahraďte dbuser a dbpassword s platným uživatelským jménem a heslem pro cílovou databázi SQL Server.

Poznámky
  • Verze Oracle 21c DG4ODBC již nepoužívá SQLDriverConnect pro připojení ke zdroji dat ODBC. Používá SQLConnect místo toho, který nepodporuje HS_NLS_NCHAR = UCS2 . Stejně tak připojení bez DSN nefungují s SQLConnect .
  • Pokud vaše propojená tabulka obsahuje sloupec s názvem ROWID, váš dotaz selže s chybou:
    ORA-02070: database SQLSRV2019 does not support ROWIDs in this context

    Chcete-li tento problém vyřešit, změňte název sloupce z ROWID na ROWNUM.


  1. Nejelegantnější způsob generování permutací na SQL serveru

  2. Oracle:Import souboru CSV

  3. Jak byste implementovali sekvence v Microsoft SQL Server?

  4. Funkce MySQL POW() – Zvyšte hodnotu na sílu jiné hodnoty