Oracle
 sql >> база данни >  >> RDS >> Oracle

Свързване на Oracle 21c към SQL Server

Използвайте ODBC драйвера на SQL Server с ODBC агента на Oracle Heterogeneous Services, DG4ODBC, за да свържете Oracle 21c към SQL Server.

  1. Проверете дали вашата версия на DG4ODBC е 32-битова или 64-битова:
    file dg4odbc

    Ако file изходът на командата съдържа "ELF 64-битов LSB изпълним" или нещо подобно, DG4ODBC е 64-битов и трябва да използвате 64-битова версия на ODBC драйвера на SQL Server.

    В противен случай изтеглете 32-битовия SQL Server ODBC драйвер за вашата платформа.

  2. Инсталирайте, лицензирайте и тествайте ODBC драйвера на SQL Server на машината, където е инсталиран DG4ODBC.

    За инструкции за инсталиране вижте документацията на SQL Server ODBC драйвер. Обърнете се към документацията, за да видите кои променливи на средата трябва да зададете (LD_LIBRARY_PATH , LIBPATH , LD_RUN_PATH или SHLIB_PATH в зависимост от платформата и линкера).

  3. Създайте файл за инициализиране на DG4ODBC. Например:
    cd $ORACLE_HOME/hs/admin
    cp initdg4odbc.ora initmssql.ora
  4. Уверете се, че тези параметри и стойности присъстват във вашия init файл:
    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 
    

    Заменете my_sql_server_odbc_dsn с име на източник на данни за драйвер на SQL Server ODBC, който се свързва с целевата база данни на SQL Server.

  5. Добавете запис към $ORACLE_HOME/network/admin/listener.ora което създава SID_NAME за DG4ODBC. Например:
    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)
       )
     )
    

    Заменете oracle_home_directory със стойността на $ORACLE_HOME .

  6. Добавете запис DG4ODBC към $ORACLE_HOME/network/admin/tnsnames.ora който посочва SID_NAME, създаден в предишната стъпка. Например:
    MSSQL=
     (DESCRIPTION=
       (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
       (CONNECT_DATA= (SID=mssql))
       (HS=OK)
     )
  7. Стартирайте (или рестартирайте) Oracle Listener:
    cd $ORACLE_HOME/bin
    ./lsnrctl stop
    ./lsnrctl start
  8. Свържете се с вашата база данни Oracle в SQL*Plus.
  9. В SQL*Plus създайте връзка към базата данни за целевата база данни на SQL Server. Например:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "dbuser" IDENTIFIED BY "dbpassword" using 'MSSQL';

    Заменете dbuser и dbpassword с валидно потребителско име и парола за целевата база данни на SQL Server.

Бележки
  • Версията Oracle 21c на DG4ODBC вече не използва SQLDriverConnect за да се свържете с ODBC източник на данни. Той използва SQLConnect вместо това, което не поддържа HS_NLS_NCHAR = UCS2 . По същия начин връзките без DSN не работят с SQLConnect .
  • Ако вашата свързана таблица съдържа колона с име ROWID, вашата заявка ще се провали с грешката:
    ORA-02070: database SQLSRV2019 does not support ROWIDs in this context

    За да заобиколите това, променете името на колоната от ROWID на ROWNUM.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spring Batch ORA-08177:не може да се сериализира достъпът за тази транзакция при изпълнение на едно задание, СЕРИАЛИЗИРАНО ниво на изолация

  2. Коя е перфектната кутия с инструменти за разработка на PL/SQL?

  3. Как мога да избера от списък със стойности в Oracle

  4. SQLRecoverableException:Изключение за I/O:Нулиране на връзката

  5. LN() Функция в Oracle